2015-10-18 115 views
0

其他我使用這個mysqli代碼插入數據庫。在插入後立即在mysql DB中返回id AUTO_INCREMENT值

郵件數據庫的ID爲AUTO_INCREMENT。

$sql = "INSERT INTO mail (".$sqlname.") VALUES (".$sqlValue.")"; 
     if (!($conn->query($sql) === TRUE)) 
     { 
      echo 'false'; 
      return false; 
     } 
     else 
      return $id; // return id of insereted record in table 

有沒有辦法在插入後實時返回郵件表中的id?

我可以通過調用另一個函數來調用最後一個ID ....但是對於高帶寬插入到DB可能會出錯。

回答

1

如果您使用的mysqli,你可以用mysqli_insert_id做到這一點:

return $conn->insert_id; 

如果您正在使用PDO,你可以用lastInsertId做到這一點:

return $conn->lastInsertId(); 
1

說明:

當生成新的AUTO_INCREMENT值時,您還可以通過使用mysql_query()執行SELECT LAST_INSERT_ID()語句並從r中檢索值來獲取它聲明返回的esult集。

對於LAST_INSERT_ID(),最近生成的ID在服務器上以每個連接爲基礎進行維護。它不會被另一個客戶更改。如果使用非魔術值更新另一個AUTO_INCREMENT列(即非NULL值不爲0),它甚至不會更改。同時使用來自多個客戶端的LAST_INSERT_ID()和AUTO_INCREMENT列是完全有效的。每個客戶端將收到客戶端執行的最後一條語句的最後一個插入的ID。

在此處查看詳細信息:https://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html

+0

感謝您的好評。 – partiz

相關問題