이 $sql = $pdoObj->execute($query)
과 같은 pdo 명령이 있지만 작동하지 않습니다. 결과가 0입니다. 나는 execute()
을 호출하기 직전에 $query
변수를 echo'ed 한 다음 execute()
안에 붙이고 코드가 성공적으로 실행되었습니다. 문제없이 내 코드의 다른 부분에서이 작업을 수행 했으므로 여기서 어떤 문제인지 이해할 수 없습니다. 여기 쿼리의 예이다 :변수를 쿼리로 전달할 때 pdo 쿼리가 실행되지 않습니다.
SELECT s.id, s.marca, s.colore, s.prezzo, i.id_scarpa, i.taglia FROM scarpe AS s INNER JOIN info_scarpe AS i ON i.id_scarpa = s.id WHERE 1 = 1 AND taglia IN ('40','41','42') AND colore IN ('rosso', 'nero')
SELECT * FROM scarpe WHERE 1=1
SELECT * FROM scarpe WHERE 1=1 AND marca IN ('adidas','nike')
그들은 $_GET
변수에 기초하여 모든 동적 쿼리 생성한다.
편집 : 물론
if (isset($_GET)) {
if (isset($_GET['taglia'])) {
$query = "
SELECT
s.id, s.marca, s.colore, s.prezzo, i.id_scarpa, i.taglia
FROM
scarpe AS s
INNER JOIN
info_scarpe AS i
ON i.id_scarpa = s.id
WHERE
1 = 1
";
foreach ($_GET as $index => $val) {
$a = explode(',', $val);
$in = "'" . implode("','", $a) . "'";
$query .= ' AND '.$index.' IN ('.$in.')';
}
} else {
$query = " SELECT * FROM scarpe WHERE 1=1";
foreach ($_GET as $index => $val) {
$a = explode(',', $val);
$in = "'" . implode("','", $a) . "'";
$query .= ' AND '.$index.' IN ('.$in.')';
}
}
echo 'data loaded';
} else {
$query = " SELECT * FROM scarpe ORDER BY id DESC ";
}
EDIT2 :
내가 query()
하지 execute()
사용하지만 여전히 쿼리 매개 변수와 배열해야한다 execute
에 대한
가 쿼리를 생성하는 PHP 코드를 게시 할 수 있을까요? – lexmihaylov