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