У меня есть следующие вставки заявленияПрочитайте последнюю вставленную строку
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 ok thanks, что означает «$ db = new PDO (« mysql: host = localhost; dbname = test », $ dbUser, $ dbPW); будет инициализирован один раз (скажем, в моем глобальном файле include) и повторно используется как глобальная переменная? –
да, точно. просто сделайте это 'global $ db;' в функции. В противном случае вы будете спамить сервер БД с несколькими подключениями от выполнения одного сценария. –