Я передаю аргумент своему php-коду с помощью веб-браузера в следующем формате:
www.site.php?age=1&sex=2
Затем в коде, обращающемся к этим аргументам:
'age' => $_GET['age']
'sex' => $_GET['sex']
Один аргумент должен быть набором значений, разделенных запятыми (например, «1,2,3,4,5»). Когда я делаю следующее, интерпретируется только первое значение:
www.site.php?age=1&sex=2&nums=1,2,3,4,5
Я пробовал использовать скобки, скобки и т. Д., Которые нарушают код. Есть предположения? Спасибо,
РЕДАКТИРОВАТЬ: я неправильно предположил, когда произошла ошибка. Ошибка возникает при попытке выполнить вызов sql:
Это работает:
$sql = <<<SQL
SELECT * from db
WHERE age=:age AND nums in (1,2)
SQL;
$query = $dbs['base']['connection']->prepare($sql);
$query->execute(array(
':age' => $_GET['age'],
));
Но это не удается, когда я передаю числа:
$sql = <<<SQL
SELECT * from db
WHERE age=:age AND nums in (:nums)
SQL;
$query->execute(array(
':age' => $_GET['age'],
':nums' => $_GET['nums']
));
Когда я просто печатаю $ _GET ['nums'], значения, разделенные запятыми, подходят. Как правильно передать аргумент nums в запрос sql?
$_GET['nums']
? Просто возьмите его из этого элемента и используйтеexplode
? - person slugonamission   schedule 26.01.2013explode
, чтобы разделить его. Передавать его прямо в БД - плохая практика, не избегая этого заранее. - person slugonamission   schedule 26.01.2013print_r($_GET);
или $ _SERVER. Вероятно, ваш запрос к базе данных построен неправильно. - person mario   schedule 26.01.2013