mysql son güncelleme sütun almak

2 Cevap php

Ben aşağıdaki gibi (Zend_Db kullanarak) gider bir MySQL sorgusu vardır:

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

(Rank isn't an auto-incrementing PK). I would like to now retrieve the value of rank without preforming another query. I've tried $handle->lastInsertId(); but it doesn't seem to work , since I didn't use MySQL's natural auto-incrementing method (I can't - rank is the rank of a post. I either ++ or -- it.)

Başka bir sorgu preformıng ile bunu yapmak için herhangi bir şekilde? Bu bir fonksiyon son değiştirilen değer dönecektir?

2 Cevap

Ben bu mümkün inanmıyorum - sadece bir SELECT yapmak gerekecek.

MySQL bir değer ayarlayın ve ardından $handle->lastInsertId(); dayanır mysql_insert_id() C fonksiyonu ile kullanılabilir hale getirmek için sağlar LAST_INSERT_ID işlevini kullanabilirsiniz.

Aşağıdaki kendisine yapılan LAST_INSERT_ID değişikliklerle kod parçacığını güncelleştirilmiş bir sürümü:

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

Herhangi bir sorunuz varsa bana bildirin.

HTH,

-Dipin