Codeigniter 4, как использовать транзакцию для подготовленного запроса [дубликат] ⇐ Php
-
Гость
Codeigniter 4, как использовать транзакцию для подготовленного запроса [дубликат]
Мне нужно вставить два данных так, чтобы они вставлялись тогда и только тогда, когда вставлены оба данных. Это мой текущий подготовленный запрос (на основе https://codeigniter.com/user_guide/data ... ed-queries)
$pQuery = $db->prepare(static function ($db) { $sql = 'INSERT INTO транзакция (uuid, img_link, datetime) ЗНАЧЕНИЯ (?, ?, ?)'; return (новый запрос($db))->setQuery($sql); }); $pQuery->execute($uuid_one, $img_link_one, $datetime_one); $pQuery = $db->prepare(статическая функция ($db) { $sql = 'INSERT INTO транзакция (uuid, img_link, datetime) ЗНАЧЕНИЯ (?, ?, ?)'; return (новый запрос($db))->setQuery($sql); }); $pQuery->execute($uuid_two, $img_link_two, $datetime_two); Вышеуказанное не использует транзакцию, а это означает, что существует вероятность того, что первые данные будут вставлены, а вторые — нет (потеря соединения, сбой базы данных и т. д.).
Я пытался объединить оба запроса одновременно
$pQuery = $db->prepare(static function ($db) { $sql = 'INSERT INTO транзакция (uuid, img_link, datetime) VALUES (?, ?, ?); '. 'INSERT INTO транзакция (uuid, img_link, datetime) VALUES (?, ?, ?); '; return (новый запрос($db))->setQuery($sql); }); $pQuery->execute($uuid_one, $img_link_one, $datetime_one, $uuid_two, $img_link_two, $datetime_two); но выбрасывает
У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MariaDB, чтобы найти правильный синтаксис для использования рядом с «INSERT INTO транзакция (uuid, img_link, datetime) VALUES (?, ?, ?)» в строке 1. что означает, что я не могу использовать два запроса одновременно. Итак, я подумал, что решение состоит в том, чтобы использовать транзакцию, но я не нашел, как использовать транзакцию для подготовленного запроса в codeigniter 4. Может ли кто-нибудь мне помочь, пожалуйста?
Мне нужно вставить два данных так, чтобы они вставлялись тогда и только тогда, когда вставлены оба данных. Это мой текущий подготовленный запрос (на основе https://codeigniter.com/user_guide/data ... ed-queries)
$pQuery = $db->prepare(static function ($db) { $sql = 'INSERT INTO транзакция (uuid, img_link, datetime) ЗНАЧЕНИЯ (?, ?, ?)'; return (новый запрос($db))->setQuery($sql); }); $pQuery->execute($uuid_one, $img_link_one, $datetime_one); $pQuery = $db->prepare(статическая функция ($db) { $sql = 'INSERT INTO транзакция (uuid, img_link, datetime) ЗНАЧЕНИЯ (?, ?, ?)'; return (новый запрос($db))->setQuery($sql); }); $pQuery->execute($uuid_two, $img_link_two, $datetime_two); Вышеуказанное не использует транзакцию, а это означает, что существует вероятность того, что первые данные будут вставлены, а вторые — нет (потеря соединения, сбой базы данных и т. д.).
Я пытался объединить оба запроса одновременно
$pQuery = $db->prepare(static function ($db) { $sql = 'INSERT INTO транзакция (uuid, img_link, datetime) VALUES (?, ?, ?); '. 'INSERT INTO транзакция (uuid, img_link, datetime) VALUES (?, ?, ?); '; return (новый запрос($db))->setQuery($sql); }); $pQuery->execute($uuid_one, $img_link_one, $datetime_one, $uuid_two, $img_link_two, $datetime_two); но выбрасывает
У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MariaDB, чтобы найти правильный синтаксис для использования рядом с «INSERT INTO транзакция (uuid, img_link, datetime) VALUES (?, ?, ?)» в строке 1. что означает, что я не могу использовать два запроса одновременно. Итак, я подумал, что решение состоит в том, чтобы использовать транзакцию, но я не нашел, как использовать транзакцию для подготовленного запроса в codeigniter 4. Может ли кто-нибудь мне помочь, пожалуйста?
Мобильная версия