將新對象(作爲一行)插入到MySQL數據庫時我想獲取最後插入的行(id不總是夠用,因爲我想在通用函數中使用它,其中一些INSERT沒有任何自動 - 增加的ID)。在PDO中執行INSERT(使用MySQL)後獲取最後插入的行?
我需要這個使用POSSIBLY數據庫創建的id,時間戳,或者在某些情況下只是我在插入之前知道的值給予完整對象的成功 - 所以PDO :: lastInsertId不能解決問題。
$query = "INSERT INTO table (".$colinsert.") VALUES (".$colbind.")";
$stmt = $this->db->prepare($query);
$ex = $stmt->execute();
// ... if $ex was successful, how do I retrieve the last inserted row now?
獨立於數據庫的解決方案將是很好的,但如果它是MySQL的具體它也行:-)
編輯:爲了防止一些誤解 - 例如我有表user_contact_connection與以下行(contact_id,user_id,additional_connection_info)。主鍵是(contact_id,user_id)。 PDO :: lastInsertId在這種情況下返回0,因爲沒有自動增量列。
O.k.在這種情況下,我知道我插入了哪一行,但是我仍然希望找到一種方法來獲取最後插入的行,而沒有顯式查詢ID?這甚至有可能嗎?
你已經擁有'$ colbind',這有什麼問題?使用' - > lastInsertId'獲取最後一個插入ID並查詢該數據庫,爲您提供該行的完整信息。 – Mave
你有主鍵嗎? –
有時候我有一個主鍵,有一個列,有時候是一個帶有多個列的主鍵 - 就像我已經說過的,我需要它作爲一個通用函數,我希望返回行。 – Blackbam