Как обновить SQL как это? - PullRequest
1 голос
/ 18 января 2010

Эй, у меня проблема, я хочу выполнить это обновление 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 ]

3 голосов
/ 18 января 2010

Ваш запрос не меняет 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-инъекциях . Вам это нужно, потому что ваш текущий код ужасно опасен.

0 голосов
/ 18 января 2010

Надеюсь, это то, что вы ищете:

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-инъекции , ваш код уязвим для них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...