我正在尝试更新我的值并发生一些奇怪的事情,MySQL似乎是在自己的自由意志中更新行。这是我做的事情
UPDATE accountsTable SET Status = 'TerminatedProfile' WHERE id IN (1,2,3)
即使我多次运行代码,它也会更新一行或两行而不是全部3行。如果我接受这个查询并通过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上运行它,也许它与session有关,因为我试图更新的行之一是我登录的管理员用户。特别感谢MikeB的回复。
答案 0 :(得分:1)
如果没有完整的代码或者应用了$ query2,很难知道发生了什么。
但您可以尝试不使用列表来更新这些行。尝试:
UPDATE accountsTable SET Status = 'TerminatedProfile' WHERE id = 1 AND id = 2 AND id = 3
只是为了确定问题是否在$ query2所在的位置。
您也可以尝试在mysql控制台上运行此查询,看看会发生什么。如果有效,可能错误在于你是如何做的。