У меня есть запрос MySQL, который выглядит следующим образом (используя Zend_Db):
$sql = $handle->quoteInto("UPDATE board SET rank=rank+1 WHERE post_id=?", $postid); $handle->query($sql);
(Ранг не является автоматически увеличивающимся PK). Я хотел бы теперь получить значение rank
без предварительного форматирования другого запроса. Я пробовал $handle->lastInsertId();
но он, похоже, не работает, поскольку я не использовал естественный метод автоинкремента MySQL (я не могу – rank
является рангом сообщения. Я либо ++, либо – это.)
Любой способ сделать это с предварительной подготовкой другого запроса? Функция, которая вернет последнее измененное значение?
Я не думаю, что это возможно – вам просто нужно сделать SELECT
.
Вы можете использовать функцию LAST_INSERT_ID, которую MySQL предоставляет для установки значения, а затем сделать ее доступной через функцию mysql_insert_id () C, которая имеет значение $handle->lastInsertId();
полагается.
Ниже приведена обновленная версия фрагмента кода с внесенными в него изменениями LAST_INSERT_ID:
$sql = $handle->quoteInto("UPDATE board SET rank=LAST_INSERT_ID(rank+1) WHERE post_id=?", $postid); $handle->query($sql);
Дайте знать, если у вас появятся вопросы.
НТН,
-Dipin