MySQL запрос работает в phpmyadmin, но не в php с PDO
Когда я запускаю этот запрос в phpmyadmin
он работает нормально и возвращает то, что должен вернуть.
Когда я запускаю это в php
с PDO
это терпит неудачу. Может кто-нибудь сказать мне, почему? Сообщение об ошибке показывает, что были использованы правильные параметры.
Код, в котором я работаю phpmyadmin
,
SELECT `fd1`.`id` , `fd2`.`id` , `fd3`.`id`
FROM `food` AS `fd1` , `food` AS `fd2` , `food` AS `fd3`
WHERE `fd1`.`food` = 'Empty'
AND `fd2`.`food` = 'Carrot'
AND `fd3`.`food` = 'Empty'
Код, в котором я работаю php
$sql = 'SELECT `fd1`.`id` , `fd2`.`id` , `fd3`.`id`
FROM `food` AS `fd1` , `food` AS `fd2` , `food` AS `fd3`
WHERE `fd1`.`food` = ?
AND `fd2`.`food` = ?
AND `fd3`.`food` = ?';
$stmt = $db->prepare($sql);
$stmt->bindParam(1, $food1, PDO::PARAM_STR);
$stmt->bindParam(2, $food2, PDO::PARAM_STR);
$stmt->bindParam(3, $food3, PDO::PARAM_STR);
$stmt->execute();
if (!$stmt->rowCount())
die("ERROR:FOOD_SEARCH_FAILURE food:$food1, $food2, $food3 rows returned". $stmt->rowCount());
Я также попытался запустить его с:
$stmt->execute(array($food1, $food2, $food3));
Те же результаты
2 ответа
rowCount() не возвращает количество строк, затронутых оператором SELECT, для большинства баз данных
Руководство
Сначала подключитесь к PDO способом, описанным в вики тега PDO, и установите отчет об ошибках, чтобы убедиться, что вы увидите любую ошибку.
Сделайте преднамеренную ошибку в запросе, чтобы проверить, видите ли вы их.
Далее, если ошибок в любом случае нет - проверьте ваши данные, как в базе данных, так и в связанных переменных (в вашем коде нигде вы их не определяете)