2014-02-01 2 views
2

Я собираюсь вставить около 500 записей в таблице с помощью одного запроса:ВСТАВИТЬ ИГНОРИРУЙТЕ INTO - Количество строк вставлено

$sql = "INSERT IGNORE INTO `table_name` (`field1`,`field2`) 
     VALUES ('val1','val2') ('val3','val4') ... "; 
// php_mysql_insert_function 

Как я могу узнать, боярышник многих строк вставляются после выполнения запроса?

+1

примерно 500 ...... – sskoko

+0

@sskoko, да конечно! –

+1

см. Это может быть полезно http://stackoverflow.com/questions/12623778/count-how-many-rows-inserted-from-last-sql-query – Aravin

ответ

4

Ответ affected_rows

$db = new mysqli('127.0.0.1','...','...','...'); 
$sql = "INSERT IGNORE INTO Test (id,test) VALUES (1,2),(1,3),(2,2),(3,4)"; 
$ins_test = $db->prepare($sql); 
$ins_test->execute(); 
echo $db->affected_rows; 

В этом примере испытания имеют 2 колонки идентификатор и тест (как целое число) и идентификатор является первичным ключом. Перед этой вставкой таблица пуста.

программка вторит 3.

0

Попробуйте это:

Процедурный стиль кодирования:

<?php 
$host = ''; 
$user = ''; 
$password = ''; 
$database = ''; 


$link = mysqli_connect($host, $user, $password, $database); 

if(!$link) 
{ 
    echo('Unable to connect to the database!'); 
} 
     ELSE { 
      $sql = "INSERT IGNORE INTO `table_name` (`field1`,`field2`) VALUES ('val1','val2'), ('val3','val4')"; 
      $result = mysqli_query($link, $sql); 
        echo mysqli_affected_rows($link); 
       } 

     mysqli_close($link); 
?> 

mysqli_affeccted_rows подсчитывает количество вставок. Я думаю, что ответ @ wikunia, вероятно, даст тот же результат. Я был в процессе ответа на ваш вопрос, прежде чем Уикуния избил меня. Я все равно помещаю его.

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