-1

我正在尝试更新我的值,但发生了一些奇怪的事情,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 的回复。

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 回答