我有以下的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的首選方法)。
謝謝!
順便說一句,你不應該在功能連接。每個應用程序連接一次,然後在整個代碼中使用一次連接。 –
@YourCommonSense好的,謝謝,這意味着「$ db = new PDO('mysql:host = localhost; dbname = test',$ dbUser,$ dbPW);」會被初始化一次(在我的全局包含文件中說)並重新用作全局變量? –
是的,確切地說。在函數中使它成爲'global $ db;'。否則,您將通過單個腳本執行中的多個連接來垃圾數據庫服務器 –