Предавам аргумент на моя 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
, за да го разделите. Предаването му направо към DB е лоша практика, без първо да го избягвате. - person slugonamission   schedule 26.01.2013print_r($_GET);
или $_SERVER за отстраняване на грешки. Вероятно вашата заявка за база данни, която е построена грешно. - person mario   schedule 26.01.2013