MySQL insert_id 即使有插入也返回 null
MySQL insert_id returning null even though there was an insert
我有以下 PHP 代码。我希望 return 插入的最后一个 id:
$sql = $this->dbLink->prepare("
INSERT INTO VesselTransits (CreatedByUserID, TerminalID, VesselArrivalDate, VesselNameID)
VALUES (?,?,?,?)
");
//i=integer, s=string
$sql->bind_param('iisi', $userID, $terminalID, $arrivalDate, $vesselNameID);
$userID = $this->invoiceData['userID'];
$terminalID = $this->invoiceData['terminalID'];
$arrivalDate = date('Y-m-d', strtotime($this->invoiceData['berthDate']));
$vesselNameID = $this->invoiceData['vesselNameID'];
$sql->execute();
$vesselTransitID = $sql->insert_id;
//echo('RecordInvoice line '.__LINE__.'<pre>');print_r($vesselTransitID);echo('</pre>');exit();
return($vesselTransitID);
我的数据库架构如下:
CreatedByUserID int
CreationDate datetime
ModifiedByUser int
ModifyDate datetime
TerminalID int
VesselArrivalDate datetime
VesselNameID int
VesselTransitID int [auto_increment]
我已经把厨房的水槽扔给它了,但没有骰子。无论我做什么,$vesselTransitID
总是未定义的。我已经验证确实有一个插入。我只剩下 运行 另一个 select 和 returning MAX VesselTransitID 的唯一(可怕)选项,这不能保证正确的结果。
虽然语句对象有 insert_id
属性,但它似乎有时会引起问题,如此处。
由于语句对象 insert_id
属性 这么多年之后仍未完全记录下来,为了简单和安全起见,我建议使用 insert_id
[=14 的连接对象版本=]
也一样
$vesselTransitID = $this->dbLink->insert_id;
我有以下 PHP 代码。我希望 return 插入的最后一个 id:
$sql = $this->dbLink->prepare("
INSERT INTO VesselTransits (CreatedByUserID, TerminalID, VesselArrivalDate, VesselNameID)
VALUES (?,?,?,?)
");
//i=integer, s=string
$sql->bind_param('iisi', $userID, $terminalID, $arrivalDate, $vesselNameID);
$userID = $this->invoiceData['userID'];
$terminalID = $this->invoiceData['terminalID'];
$arrivalDate = date('Y-m-d', strtotime($this->invoiceData['berthDate']));
$vesselNameID = $this->invoiceData['vesselNameID'];
$sql->execute();
$vesselTransitID = $sql->insert_id;
//echo('RecordInvoice line '.__LINE__.'<pre>');print_r($vesselTransitID);echo('</pre>');exit();
return($vesselTransitID);
我的数据库架构如下:
CreatedByUserID int
CreationDate datetime
ModifiedByUser int
ModifyDate datetime
TerminalID int
VesselArrivalDate datetime
VesselNameID int
VesselTransitID int [auto_increment]
我已经把厨房的水槽扔给它了,但没有骰子。无论我做什么,$vesselTransitID
总是未定义的。我已经验证确实有一个插入。我只剩下 运行 另一个 select 和 returning MAX VesselTransitID 的唯一(可怕)选项,这不能保证正确的结果。
虽然语句对象有 insert_id
属性,但它似乎有时会引起问题,如此处。
由于语句对象 insert_id
属性 这么多年之后仍未完全记录下来,为了简单和安全起见,我建议使用 insert_id
[=14 的连接对象版本=]
也一样
$vesselTransitID = $this->dbLink->insert_id;