提问人:Allen Harris 提问时间:12/9/2014 最后编辑:Allen Harris 更新时间:12/9/2014 访问量:296
使用 ->insert_id 时 MYSQL 重复
MYSQL duplicates when using ->insert_id
问:
当我让它工作时我很高兴,但除非我注释掉最后两行,否则它会提交两次订单。有没有更好的方法来编写它,这样我就不会得到重复?
$sql = "INSERT INTO orders (weight, shipper, shipacct) VALUES ('$weight', '$shipper', '$shipacct')";
$conn->query($sql);
$recordid = $conn->insert_id;
我这样做是因为我尝试使用记录 ID 作为订单 ID。我在购买收据上将此订单 ID 回显给客户。
更新的代码:
$sql = "INSERT INTO orders (weight, shipper, shipacct) VALUES ('$weight', '$shipper', '$shipacct')";
$recordid = mysql_insert_id();
没有重复项,但不返回记录 ID。
答:
0赞
Benison Sam
12/9/2014
#1
警告
This extension is deprecated as of PHP 5.5.0, and will be removed in the future.
Instead, the MySQLi or PDO_MySQL extension should be used.
See also MySQL: choosing an API guide and related FAQ for more information.
Alternatives to this function include:
mysqli_insert_id()
PDO::lastInsertId()
请尝试以下操作:
$sql = "INSERT INTO orders (weight, shipper, shipacct) VALUES ('$weight', '$shipper', '$shipacct')";
$conn->query($sql);
$recordid = mysql_insert_id();
注意:
由于 mysql_insert_id() 作用于上次执行的查询,因此请确保在生成值的查询后立即调用 mysql_insert_id()。
希望这个和这个会有所帮助......
评论
$conn->query($sql);
是实际运行查询的行。如何调用此代码?你可能会调用它两次,或者发布表单两次,或者使用循环或其他东西。<img>
<link>
src=