我想檢索數據庫中插入行的ID,但我不知道如何做到這一點。使用PHP,MySQLi和Prepared Statement,我如何返回插入行的ID?
我試圖返回使用SQL條款RETURNING id
,但不起作用。
如何在插入行後返回id?
我想檢索數據庫中插入行的ID,但我不知道如何做到這一點。使用PHP,MySQLi和Prepared Statement,我如何返回插入行的ID?
我試圖返回使用SQL條款RETURNING id
,但不起作用。
如何在插入行後返回id?
在PreparedStatement
上調用方法後,插入行的ID將在insert_id
屬性中。只讀它。
$pstm->execute();
$pstm->insert_id;
$newid = mysqli_insert_id($mysqli_db);
$mysqli_db
是你的mysqli數據庫連接。據我所知,在哪一行插入行(預備聲明或直接INSERT INTO
)無關緊要。 mysqli_insert_id()
應該使用這個數據庫連接返回最後插入的行的ID。
另一種方法是製作另一個查詢,如SELECT LAST_INSERT_ID();
。
值得一提的是,這種方法也適用於交易(不太明顯)。 – Itako
這適用於'PreparedStatement'?我得到了這個id doint:'$ pstm-> execute();'然後,'insert_id'屬性具有id:'$ mysqli-> insert_id;' –
但是它會爲每個返回一個對應的唯一ID執行?在[文檔](http://php.net/manual/en/mysqli-stmt.insert-id.php#102299)下的最熱評論說你應該使用'mysqli_connection-> insert_id'而不是'mysqli_stmt-> insert_id'如果您多次執行相同的準備好的語句。以爲你可能知道這是正確的還是不正確的。 – Cheslab