如何更新这样的sql?

时间:2010-01-18 07:04:10

标签: php mysql

嘿,我遇到了问题,我想执行这个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一直?

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,您的代码很容易受到攻击。