我正在尝试更新我的值,但发生了一些奇怪的事情,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上运行它,也许它与会话有关,因为我试图更新的一行是我登录的管理员用户。特别感谢MikeB的回复。
如果没有完整的代码,很难知道发生了什么,也很难知道$query2应用在哪里。
但是您可以尝试不使用列表来更新这些行。尝试:
UPDATE accountsTable SET Status = 'TerminatedProfile' WHERE id = 1 AND id = 2 AND id = 3
这只是为了确保问题是否在$query2所在的位置。
您也可以尝试在mysql控制台上运行这个查询,看看会发生什么。如果有效,可能错误在于您的操作方式。