【问题标题】:Updating an array before MySQL insert?在 MySQL 插入之前更新数组?
【发布时间】:2010-10-27 13:42:30
【问题描述】:

我通过 php://input 接收 XML,在使用 simpleXML 将元素分解为变量之后,我想要做的是附加一个数组,或者每 30 秒左右创建一个变量数组.

原因是这个脚本将获得常规输入,而不是执行大量的 mySQL 更新或插入,我认为它可能会提高效率。

所以,如果有人有时间,有几个问题。

1) 有没有办法检查 php://input 上的新输入。 2)有没有比睡眠功能更好的方法来做这个重复检查? 3) 如何使用这些更新变量追加/添加到数组?

我还没有走得太远,所以代码没有用,但如果你能原谅我的简单性:-

    function input() {

    $xml = new SimpleXMLElement($input);

    $session_id = $xml->session_id;
    $ip = $xml->ip;
    $browser = $xml->browser;

    store($session_id, $ip, $browser);
    }

function store() {
    $session_id = array();
    $ip = array();
    $browser = array();
}

【问题讨论】:

    标签: php xml arrays


    【解决方案1】:

    如果我对您的理解正确,您似乎正在尝试将 PHP 用于长时间运行的有状态程序。我相信你知道以下内容: PHP 程序的运行时间通常不会超过几毫秒,对于典型的 Web 应用程序最多只有几秒钟。每次从 PHP 处理程序请求资源时,都会重新开始解析,并且没有保留上次执行的程序状态。作为一个无状态的环境,由你来维护状态。出于这个原因,PHP 不是用来处理随时间变化的输入,也不是为了维护一个状态。

    话虽如此,附加到数组的最简单方法是:

    $myarray[] = "newvalue";
    

    $myarray['newkey'] = "newvalue";
    

    处理流:

    while (!feof($handle)){ $data = fgets($handle, 4096); }
    

    【讨论】:

    • 好答案,我最终以不同的方式执行此操作...改为写入文件,然后事件 mySQL 稍后更新。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多