2013-04-12 89 views
0

我有以下的INSERT語句閱讀最後插入的行

global $dbUser; 
global $dbPW; 
$query = "INSERT INTO comments (post_id, text) VALUES (:post_id,:text)"; 
$db = new PDO('mysql:host=localhost;dbname=test', $dbUser, $dbPW); 
$statement = $db -> prepare($query); 
$statement -> execute(array(':post_id' => $postId, ':text' => $text)); 

我想讀,並在同一事務返回插入的行

我知道我能得到

$ DB-> lastInsertId( 'ID')

,但我知道該怎麼做在PDO事務,但我不能找出如何使用上述準備好的聲明(這是安全性IIRC的首選方法)。

謝謝!

+0

順便說一句,你不應該在功能連接。每個應用程序連接一次,然後在整個代碼中使用一次連接。 –

+0

@YourCommonSense好的,謝謝,這意味着「$ db = new PDO('mysql:host = localhost; dbname = test',$ dbUser,$ dbPW);」會被初始化一次(在我的全局包含文件中說)並重新用作全局變量? –

+0

是的,確切地說。在函數中使它成爲'global $ db;'。否則,您將通過單個腳本執行中的多個連接來垃圾數據庫服務器 –

回答

1

這裏不需要交易。
只要運行$ db-> lastInsertId(),如果你需要自動生成的id - 就這些。

+0

我需要整個記錄不僅是ID ... –

+0

如果您已經擁有所有數據,爲什麼需要它? –

+0

在這種情況下,這是真的,在其他情況下,我有我不想在代碼的其他部分中再次使用的select語句中的公式。感謝您的寶貴意見! –