PHP для вставки значений массива mysql цикла - вставка 100 000 строк вместо длины массива - PullRequest
0 голосов
/ 25 декабря 2010

Вопрос должен быть ясен, но я объясню еще раз: я пытаюсь вставить отдельные значения из массива в базу данных 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;
}

PointArray передается из ActionScript с использованием инфраструктуры Zendamf, если кому-то интересно.На мой взгляд, в этом утверждении нет ничего плохого, но вместо вставки 4 строк он вставляет более 100 000 строк. Я также не получаю "true" обратно в actionscript, который должен быть передан при выполнении функции php.

Я также пробовал для каждого цикла, но получаю ошибку (которую я не могу прочитать, так как я вызываю php-файл из actionscript).

foreach ($pointArray as $value) {

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

    }

Я предпочитаючтобы использовать цикл for.

Абсолютно безразлично по этому поводу, возился с несколькими настройками в течение пары часов.

1 Ответ

0 голосов
/ 25 декабря 2010

Вы уверены, что 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;
}

И затем посмотреть, что на самом деле произошло =)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...