0
foreach($chk as $key=>$invoiceno)
{
  $QryUp = mysql_query("update `tbl1` set `paid` = 'y' where `invoice_no`='".$invoiceno."' and `uniquekey`='".$_SESSION['uniquekey']."'") or die(mysql_error());
  $id=mysql_affected_rows();

 //insert data into tbl_school_account
 $QryIns=mysql_query("insert into `tbl2` (`type`, `ref_id`) values('d', '$id')");
}

这里$id返回相同的值。
exa:当这个循环工作时,它会更新tbl1表。它们的 id 是 1 和 2。它会更新完美。但mysql_affected_rows只返回 1(两次)。

那么问题出在哪里?

我知道不推荐使用的功能

4

2 回答 2

1

你想要这个函数而不是affected_rows:

http://php.net/manual/en/function.mysql-insert-id.php

“检索前一个查询(通常是 INSERT)为 AUTO_INCREMENT 列生成的 ID。”

于 2013-09-30T12:13:21.773 回答
1

mysql_affected_rows调用返回受影响的行,而不是受影响行的 PK。您将不得不SELECT使用发票 ID 等运行以获取您想要的信息。

于 2013-09-30T12:08:45.293 回答