嘿,我遇到了问题,我想执行这个sql更新,但它不起作用。谁能帮助我?谢谢!
代码:
$temp = $_GET['ul'];
foreach ($temp as $key=> $value)
{
$str=array();
$arr=explode(',',$value);
$str =array($key=>$arr);
for($i=0;$i<count($str[$key]);$i++)
{
$tripID='2';
$sql = "UPDATE places_trips
SET orderNo='$i', ColumnNo='$key'
WHERE place_id=" . $str[$key][$i] . "
AND trip_id=" . $tripID;
mysql_query($sql);
}
}
}
我想设置$ tripID = 2,但实际上,$ tripID = 2222。那么如何让$ tripID = 2一直?
答案 0 :(得分:3)
您的查询不会更改trip_id。它试图改变行的orderNo和ColumnNo,其中 trip_id是2.如果我理解正确,你应该把它放在查询的第一部分:
"UPDATE places_trips SET orderNo = '$i', ColumnNo = '$key', trip_id = $tripID WHERE place_id = ".$str[$key][$i];
话虽如此,请阅读SQL injections。你需要它,因为你当前的代码非常危险。
答案 1 :(得分:0)
我希望这就是你所追求的目标:
UPDATE places_trips SET
orderNo = $i,
ColumnNo = $key
WHERE place_id = $str[$key][$i]
AND trip_id RLIKE '^2+$';
应更新trip_id仅包含2
s。
同时在StackOverflow上搜索SQL Injections,您的代码很容易受到攻击。