将整个对象从一个类传递到另一个类的PHP脚本
为了更好地描述我的问题,我将首先写几句关于我的脚本到目前为止是如何工作的。将整个对象从一个类传递到另一个类的PHP脚本,php,postgresql,Php,Postgresql,为了更好地描述我的问题,我将首先写几句关于我的脚本到目前为止是如何工作的。因此,有一个服务器在某个地址下不时更新XML(比如它的(https://someaddress.com/feedback.xml)。然后我创建了一个每天运行一次的脚本(使用cron)读取给定的XML并将新对象放入我的数据库。现在我想在另一个脚本中获取这些对象(对我来说,创建独立的.php文件很重要,它只从feedback.xml加载最新的对象。问题是,我可以直接从数据库加载这些值,但这样我就有了所有记录的完整列表(我只想要
因此,有一个服务器在某个地址下不时更新
XML
(比如它的(https://someaddress.com/feedback.xml
)。然后我创建了一个每天运行一次的脚本(使用cron
)读取给定的XML
并将新对象放入我的数据库。现在我想在另一个脚本中获取这些对象(对我来说,创建独立的
.php
文件很重要,它只从feedback.xml
加载最新的对象。问题是,我可以直接从数据库
加载这些值,但这样我就有了所有记录的完整列表(我只想要最新的一个)解决这个问题的方法可能是在表中添加一列,该列将布尔值存储到新建?
问题中,但我不能以任何方式更改我的数据库。我相信我可以将这些对象加载到某个数组
,但如何将其传递到另一个脚本?下面是我用来将记录存储到的方法数据库
$xmlstr = file_get_contents(url);
$xml = new SimpleXMLElement($xmlstr);
foreach ($xml->value as $a) {
//method to check if record exist
$rec= new Item($db);
//method to set values of obj
$rec->Store();
如果您的脚本在同一台服务器上运行,那么有许多不同的方法可以使用:-
(1) 如果您的数据库已具有相关行的时间戳或唯一ID,则可以查询数据库,按其中一列排序,然后将结果限制为1条记录
select [fields] from records order by created desc limit 1
(2) 除了将结果写入数据库,您还可以将它们持久化到本地文件中,并每次从中读取(这些结果集有多大?)
(3) 另一种选择是使用Memcached将结果集持久保存在内存中,这样脚本就可以保持解耦,但访问信息的速度非常快。如果您以前没有使用Memcached,请看一看——它非常适合这种任务,而且使用简单
如果您的脚本运行在不同的服务器上,则(1)可以工作,但其他脚本需要进一步考虑。(3)另一种选择是使用Memcached将结果集持久保存在内存中,这样您的脚本就可以保持解耦,但访问信息的速度非常快。-这个选项对我来说非常有趣。我将查看Memcached
的一些文档或一些示例,并报告它的工作原理。谢谢您Purpletoucan!重新发布后阅读php手册
我发现Memchached
不是php的一部分,需要安装,这对我来说是不可能的,因为我不是服务器管理员。关于(2)这些结果集有多大?每次我更新数据库记录时,我都会得到大约20条新记录,但我不知道这个值-它是可变的,因此i gesdesc
也不适合这样做..将一些信息保留在数据库之外有点混乱,但由于托管环境的限制,这可能是不可避免的。可能是混乱的我们的cron作业可以只将记录数写入一个文件,而您的脚本将根据该数检索限制的记录,或者您完全选择选项(2)。这有点“讨厌”,但在限制性环境中,其他选项会消失。听起来,结果集的大小似乎不会影响选项(2)。