フィールド 'id' と 'num' を持つテーブル 'item' と、動作しない以下のようなコードがあるとします。
$db = new mysqli('localhost', 'user', 'pass', 'db') ;
if (!$st = $db->prepare('select id from item')) die($db->error) ;
if (!$st2 = $db->prepare('update item set num = 1 where id = ?')) die($db->error) ;
$st->execute() ;
$st->bind_result($id) ;
while ($st->fetch()) {
$st2->bind_param('i', $id) ;
$st2->execute() ;
echo $id.'<br/>' ;
}
^ 1 2 3 のようなものを出力するだけですが、データベースの変更は行われません ($st2->affected_rows はゼロに等しい)。どうしたの?
PS実際のコードではありませんが、問題を完全に説明しています。