如何在批量插入查询后从表中获取总插入行数mysql

问题描述:

我正在使用PHP插入到mysql表中使用批量插入查询。在这里我想知道从这个批量插入查询中插入的总记录。批量插入完成后,我使用下面的代码来获得总插入计数。如何在批量插入查询后从表中获取总插入行数mysql

//here bulk insert complete.Next i am calling this 
$row_cnt = mysql_query("SELECT ROW_COUNT()"); 
echo "Affected:rows:".$inbound_cnt = mysql_num_rows($row_cnt); 

在这里我得到的影响:rows:1.And我希望最后插入ID也从这个批量插入。

echo "current_id:". $current_id = mysql_insert_id(); 
I am getting '0' ; 

我怎样才能找到总插入计数?任何帮助将不胜感激。

// my insert query 
$data4 = ""; 
    $inbound_csv_cnt = count($csv_array); 
    for($i=0;$i<$inbound_csv_cnt;$i++) 
    { 
    $data4.="('".$csv_array[$i][0]."','".$csv_array[$i][1]."','".$csv_array[$i][2]."'),"; 
    } 
    $data4 = substr($data4,0,-1); 
    $ins_sql = "INSERT INTO whv_inbound_response(`whv_id`, `rqv_id`, `whv_type`) values $data4" ; 
    $res = mysql_query($ins_sql); 
+0

_i想最后插入的ID也从该散装insert._在哪里INSERT语句? –

+0

您可以在您的问题中添加批量插入功能吗?只是想看看你是如何做到这一点,以便用户给出的答案将更接近你所期望的... –

+0

增加了批量插入查询 – user3408779

您可以将之前获得total records

SELECT COUNT(id) FROM table_name; // save output in $old 

然后插入您的数据,并再次现在算总记录为$new

现在找到差异

$total_inserted_record = $new-$old; 

虽然使用循环,你也可以设置一个计数器来计数th e行数,甚至在插入之前。此外,为了获得最后插入的ID,用于mysqli的程序你可以使用

$last_id = mysqli_insert_id($conn_string); 

你已经拥有的记录数为插入$ inbound_csv_cnt