【问题标题】:How to get total inserted row count from a table after bulk insert query mysql批量插入查询mysql后如何从表中获取总插入行数
【发布时间】:2017-01-20 19:13:15
【问题描述】:

我正在使用使用 php 的批量插入查询来插入 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);

在这里我受到影响:行数:1。我也想从这个批量插入中获得最后一个插入 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);

【问题讨论】:

  • 我也想从这个批量插入中获取最后一个插入 ID。 INSERT 语句在哪里?
  • 您可以在您的问题中添加批量插入功能吗?只是想看看您是如何做到这一点的,以便用户给出的答案更接近您的期望......
  • 添加了批量插入查询

标签: php mysql insert bulk


【解决方案1】:

你可以在插入之前得到total records

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

然后插入您的数据并再次将总记录计数为$new

现在找出区别

$total_inserted_record = $new-$old;

【讨论】:

    【解决方案2】:

    在使用循环时,您还可以设置一个计数器来计算行数,甚至在插入之前。此外,要获取最后一个插入 ID,对于 mysqli 程序,您可以使用

    $last_id = mysqli_insert_id($conn_string); 
    

    您已经在 $inbound_csv_cnt 中插入了许多记录

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      • 1970-01-01
      • 1970-01-01
      • 2016-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多