У меня есть запрос в PDO, который содержит несколько действий. Сначала я посмотрел на вопрос это, чтобы узнать, возможны ли множественные запросы.
Мой код выглядит так:
$stmt = $db->prepare(
"UPDATE
tbl_user_dashboards
SET
is_active = 0
WHERE
id_user_key_fk = 1;
INSERT INTO
tbl_user_dashboards(id_user_key_fk, dashboard_name, dashboard_description, is_active)
VALUES
(1, 'bla', 'blabla', 1);
SELECT
id_dashboard AS did,
dashboard_name AS dname,
dashboard_description AS ddesc,
is_active
FROM
tbl_user_dashboards
WHERE
id_user_key_fk = 1
ORDER BY
id_dashboard ASC;"
);
$stmt->execute();
$data = array();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$data[] = $row;
}
Моя проблема в том, что UPDATE и INSERT работают нормально, но SELECT не работает (мой JSON объект остается пустым, и я не получаю никаких ошибок, просто [] в качестве вывода).
Когда я изолирую UPDATE и INSERT и запускаю SELECT как отдельный оператор после UPDATE и INSERT, это работает, но это не мое предпочтительное решение.
Есть мысли по этому поводу?
почему ты хочешь это сделать?
@NigelRen: я нашел это более читаемым с одним утверждением, но это очевидное личное предпочтение..
Дело не всегда в том, что вы предпочитаете. Я думаю, что это очень редко делается таким образом, и поэтому, если кто-то еще придет к вашему коду, они также зададутся вопросом, почему вы сделали это таким образом. Разделение SQL на отдельные операторы также помогает отслеживать ошибки, поскольку в данный момент у вас есть масса операторов, в которых что-то может пойти не так.
@NigelRen: спасибо, что указали на это. Затем я разделю код на 3 отдельных оператора. Береженого Бог бережет :-)
выбор данных, которые вы только что вставили, тоже кажется немного пустой тратой времени.






Есть ли какая-то причина делать это таким образом, а не использовать несколько процедур подготовки/выполнения?