Эй, у меня проблема, я хочу выполнить это обновление 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 ответа
Ваш запрос не меняет 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. Вам это нужно, потому что ваш текущий код ужасно опасен.
Надеюсь, это то, что вам нужно:
UPDATE places_trips SET
orderNo = $i,
ColumnNo = $key
WHERE place_id = $str[$key][$i]
AND trip_id RLIKE '^2+$';
Следует обновить все строки, в которых trip_id содержит только 2
с.
Также поищите в StackOverflow инъекции SQL, ваш код уязвим для них.
Похожие вопросы
Связанные вопросы
Новые вопросы
php
PHP — это широко используемый язык сценариев общего назначения с открытым исходным кодом, мультипарадигмальный, динамически типизированный и интерпретируемый, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.