0
我有一个基于MySQL的表,我试图通过PHP来更新,但由于某种原因,更新似乎没有发生。PHP MySQL奇怪的更新问题
这是我的测试代码:
<?php
$freepoints[] = 1;
$freepoints[] = 2;
$freepoints[] = 3;
foreach ($freepoints as $entrypoint) {
$query = "update gates set lane='{$entrypoint}' where traffic > 50 limit 50";
echo "$query\n";
mysql_query($query);
echo mysql_affected_rows()."\n";
}
?>
此输出以下:
update gates set lane='1' where traffic > 50 limit 50
50
update gates set lane='2' where traffic > 50 limit 50
50
update gates set lane='3' where traffic > 50 limit 50
50
在数据库开始与车道1/2/3具有0记录和泳道4/5/6有100条记录。从这里我期待所有6车道现在有50个记录。然而,当我看起来泳道4/5/6仍然有100条记录,1/2/3仍然有0条记录。
当我复制查询“update gates set lane ='1'where traffic> 50 limit 50”into phpMyAdmin它工作得很好,所以任何想法为什么它不能在我的PHP脚本中工作,当mysql_affected_rows说的时候已更新50条记录?
我改变查询以下,但仍然无法正常工作:更新门设置车道=“{$入口点}”这里交通> 50和车道=“{ $ entrypoint}'按车道限制排序50 – Tim 2010-03-31 09:18:55
哦,现在当我意识到你说的这个问题时,我感觉自己很蠢。我改变了查询如下,它现在工作正常:“更新门设置车道='{$ entrypoint}',其中traffic> 50和lane>'{$ entrypoint}'限制50”。谢谢! – Tim 2010-03-31 09:21:40
即使它现在适合你 - 我建议总是指定ORDER以获得明显的结果。 – zerkms 2010-03-31 09:23:04