0

次のようなMySQLクエリがあります(Zend_Dbを使用):

 $sql = $handle->quoteInto("UPDATE board SET rank=rank+1 WHERE post_id=?", $postid);
 $handle->query($sql);

(Rank は自動インクリメント PK ではありません)。rank別のクエリを実行せずに値を取得したいと思います。試してみまし$handle->lastInsertId();たが、MySQL の自然な自動インクリメント メソッドを使用しなかったため、うまくいかないようです (できません -rankは投稿のランクです。私は ++ または -- それです。)

別のクエリを実行してこれを行う方法はありますか? 最後に変更された値を返す関数?

4

2 に答える 2

2

私はこれが可能だとは思わない - あなたはSELECT.

于 2009-07-06T15:45:27.303 に答える
0

MySQLが提供するLAST_INSERT_ID関数を使用して値を設定し、依存する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);

ご不明な点がございましたら、お気軽にお問い合わせください。

HTH、

-ディピン

于 2009-07-06T20:29:13.537 に答える