-1

値を更新しようとしていますが、奇妙なことが起こっています。MySQL は、独自の自由意志で行を更新しているようです。これが私がすることです

UPDATE accountsTable SET Status = 'TerminatedProfile' WHERE id IN (1,2,3)

また、コードを複数回実行しても、3 つすべてではなく 1 つまたは 2 つの行が更新されます。そして、このクエリを取得して phpmyadmin で実行すると、正常に動作します。php の mysql 実装に何か問題がありますか?

私は使っている

mysql_connect("$host", "$user", "$password")or die("cannot connect"); 
mysql_select_db("$db")or die("cannot select DB"); 
mysql_query($query2);

更新:Joomlaで実行していましたが、更新しようとしていた行の1つがログインしていた管理者ユーザーにあったため、おそらくセッションと関係がありました. 特に MikeB さん、ご回答ありがとうございます。

4

1 に答える 1

1

完全なコードや $query2 が適用されている場所がなければ、何が起こっているのかを知ることは困難です。

ただし、リストを使用せずにこれらの行を更新することはできます。試す:

UPDATE accountsTable SET Status = 'TerminatedProfile' WHERE id = 1 AND id = 2 AND id = 3

問題が $query2 の場所にあるかどうかを確認するだけです。

このクエリを mysql コンソールで直接実行して、何が起こるかを確認することもできます。動作する場合、おそらくエラーはあなたのやり方にあります。

于 2012-07-18T14:48:01.237 に答える