使用 - > insert_id时,MYSQL重复

时间:2014-12-08 18:08:56

标签: mysql 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。

1 个答案:

答案 0 :(得分:0)

警告

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()。

希望thisthis有助于......