【发布时间】:2021-06-24 19:04:14
【问题描述】:
我有以下 PHP 代码。我希望返回插入的最后一个 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 总是未定义的。我已经验证实际上有一个插入。我只剩下运行另一个选择并返回 MAX VesselTransitID 的唯一(可怕)选项,这不能保证正确的结果。
【问题讨论】:
-
试试
$this->dbLink->insert_id;它是mysqli类(连接)的属性而不是语句类 -
您是在使用 mysqli 还是在使用其他在内部使用 mysqli 的库?
insert_id永远不能为空。
标签: php mysql mysqli auto-increment