使用循环插入多行时获得成功确认

Foy*_*Vai 1 php mysql sql codeigniter

当我使用循环在 MySql 数据库表中插入表行时,如何获得成功确认?

我的代码如下(我正在使用CodeIgniter):

foreach($bookids as $key=>$bookid)
{
    $this->db->query("INSERT INTO `book` (`invoice_id`,`item_id`,`quantity`,`price`) VALUES (`$invoice_id`,`$product_id`,`$product_quantitys[$key]`,`$product_prices[$key]`)");        
}
Run Code Online (Sandbox Code Playgroud)

我想在所有行插入成功后得到确认。

Kum*_*r V 5

您可以使用affected_rows()函数来检查数据是否插入(或更新)。

$actual_count = count($bookids); // array of book ids
$inserted_count = 0;

foreach($bookids as $key=>$bookid)
{
    $this->db->query("INSERT INTO `book` (`invoice_id`,`item_id`,`quantity`,`price`) VALUES (`$invoice_id`,`$product_id`,`$product_quantitys[$key]`,`$product_prices[$key]`)");        
    if($this->db->affected_rows()>0) // data inserted, so it will return 1
    {
      $inserted_count ++;
    }
}

if($actual_count  == $inserted_count )
{
  //throws success message to controller
}
else
{
   // throws error message with mismatch record count
}
Run Code Online (Sandbox Code Playgroud)