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, и установите отчет об ошибках, чтобы убедиться, что вы увидите любую ошибку.
Сделайте преднамеренную ошибку в запросе, чтобы проверить, видите ли вы их.

Далее, если ошибок в любом случае нет - проверьте ваши данные, как в базе данных, так и в связанных переменных (в вашем коде нигде вы их не определяете)

Другие вопросы по тегам