PDO rowCount () с SELECT mysql, почему один работает, а другой нет? - PullRequest
1 голос
/ 22 октября 2011

У меня 3 разных запроса, некоторые работают, а некоторые нет.

Я знаю, что pdo select не работает с mysql, так почему они работают?

$q = $dbc -> prepare("SELECT * FROM accounts WHERE id = ?");
$q -> execute(array($user['id']));
echo $q -> rowCount();

Возвращает правильные данные. Если я добавлю другой параметр, это не так,

$q = $dbc -> prepare("SELECT * FROM accounts WHERE id = ? && age = 12");
$q -> execute(array($user['id']));
echo $q -> rowCount();

Не удается вернуть ноль, снова этот запрос работает и правильно отображает совпадающие строки;

$q = $dbc -> prepare("SELECT * FROM accounts WHERE id = ? && username = ? && logCount = -1");
$q -> execute(array($user['id'], $user['username']));

Почему одни работают, а другие нет?

echo $q -> rowCount();

Ответы [ 2 ]

1 голос
/ 11 ноября 2013

Согласно точному руководству, rowCount () определяется только для запросов DML: INSERT, UPDATE или DELETE. В руководстве говорится, что SELECT запросы «не гарантированы для всех баз данных», и фактически поддержка MySQL ненадежна.

0 голосов
/ 22 октября 2011

Второй запрос либо завершается с ошибкой, либо просто не может найти строки, соответствующие условию WHERE.Чтобы выявить первую причину, добавьте эту строку в код подключения.

$dbc->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...