PHP for循环mysql数组值插入 - 插入100 000行而不是数组长度

时间:2010-12-25 00:01:48

标签: php mysql arrays loops for-loop

问题应该清楚,但我会再次解释: 我正在尝试将数组中的各个值插入到mysql数据库中。

以下是代码:

public function addRoute($pointArray){

    $length = 4; //just to be sure that nothing went wrong with calulating the length

    for($i = 0; $i < $length; $i++){

        $result = "INSERT into route_point(latlng, routeID) VALUES (4849, 10)"; //sample values, to once again be sure that there is nothing wrong with the values
        mysql_query($result);
    }

    mysql_close(); //just to be sure again
    return true;
}

如果有人想知道,使用zendamf框架从actioncript传递pointArray。在我看来,语句没有任何问题,但是它不是插入4行,而是插入超过10万行。我也没有在actionscript中收到“true”,这应该在php函数执行时传递

我也为每个循环尝试了一个,但是我得到一个错误(因为我从actionscript调用php文件而无法读取)。

foreach ($pointArray as $value) {

        $result = "INSERT into route_point(latlng, routeID) VALUES ('$value', 10)";
        mysql_query($result);

    }

我更喜欢使用for循环。

绝对无能为力,现在摆弄几个小时的几个设置。

1 个答案:

答案 0 :(得分:0)

您确定addRoute只被调用一次吗? PHP文件只调用一次?我会问$pointArray中有什么,但在这种情况下这并不重要=)

您可以在addRoute函数中添加一个日志(写入文件$file=microtime(1).'.log'以查看它的调用频率。您可以构建日志内容(每个addRoute调用) for循环:

public function addRoute($pointArray){

$length = 4; 
//just to be sure that nothing went wrong with calulating the length

$log = '';
for($i = 0; $i &lt; $length; $i++){

    $log .= $i."\n"

    $result = "INSERT into route_point(latlng, routeID) VALUES (4849, 10)"; 
    //sample values, 
    //to once again be sure that there is nothing wrong with the values
    mysql_query($result);
}

file_put_contents(microtime(1).'.log', $log);

mysql_close(); //just to be sure again
return true;
}

然后看看到底发生了什么=)