2015-06-03 3 views
0

У меня проблема с запросом. Действительно, я хочу усечь таблицу, а затем вставить данные в эту же таблицу.Только одна запись с запросами TRUNCATE INSERT

Моя проблема: когда я выполняю эти 2 запроса, INSERT записывает только одну строку, и я не знаю почему. Когда я выполняю запрос INSERT без TRUNCATE, пока он не работает нормально. Что я могу сделать, чтобы объединить TRUNCATE, а затем INSERT?

Благодаря

Вот код:

<?php 
    $base = mysql_connect ("***", "***", "***"); 
    mysql_select_db ('***', $base) ; 
    $vider = "TRUNCATE TABLE drag"; 
    mysql_query($vider);   
    // accept JSON parameter (and Un-quote string if needed) 
    $p = stripslashes($_REQUEST['p']); 
    // decode JSON object (it shouldn't be decoded as associative array) 
    $arr = json_decode($p); 
    // open loop through each array element 
    foreach ($arr as $p){ 
     // set id, row index and cell index 
     $id = $p[0]; 
     $row = $p[1]; 
     $cell = $p[2]; 
     // instead of print, you can store accepted parameteres to the database 
     print "Id=$id Row=$row Cell=$cell<br>"; 
     $ajout = "INSERT INTO drag VALUES('','$id','$row','$cell')"; 
     mysql_query($ajout); 
     mysql_close($base); 
    } 
?> 

ответ

0

Я думаю, что вы должны удалить mysql_close из цикла foreach().

Вы закрываете соединение с базой данных после первой вставки. Следующие запросы ничего не сделают

1

Я считаю, что вам нужно положить mysql_close() вне цикла. В противном случае вы не сможете отправлять последующие запросы без mysql_connect.

<?php 
    $base = mysql_connect ("***", "***", "***"); 
    mysql_select_db ('***', $base) ; 
    $vider = "TRUNCATE TABLE drag"; 
    mysql_query($vider);   
    // accept JSON parameter (and Un-quote string if needed) 
    $p = stripslashes($_REQUEST['p']); 
    // decode JSON object (it shouldn't be decoded as associative array) 
    $arr = json_decode($p); 
    // open loop through each array element 
    foreach ($arr as $p){ 
     // set id, row index and cell index 
     $id = $p[0]; 
     $row = $p[1]; 
     $cell = $p[2]; 
     // instead of print, you can store accepted parameteres to the database 
     print "Id=$id Row=$row Cell=$cell<br>"; 
     $ajout = "INSERT INTO drag VALUES('','$id','$row','$cell')"; 
     mysql_query($ajout); 
    } 

    mysql_close($base); 
?> 

Но СТОП! Не используйте mysql_query(). Посмотрите большой красный ящик на http://php.net/manual/en/function.mysql-query.php? Вместо этого переключитесь на MySQLi или PDO.

Смежные вопросы