2012-05-20 3 views
14

Я хочу проверить, вернулся ли мой подготовленный запрос пустой или нет, без необходимости входить в цикл. Это код, который я попытался с помощью:php не может проверить, является ли результат PDO пустым, используя empty() возвращает FATAL ERROR

if(empty($pQuery1->fetch(PDO::FETCH_ASSOC))){} 

Когда я пытаюсь это, я получаю ошибку:

Fatal error: Can't use method return value in write context

Использую ли я PDO->fetchALL или PDO->fetch я получаю ту же ошибку. Должен ли я делать что-то по-другому?

ответ

32

Вам нужно присвоить результаты переменной, а затем вызвать empty() на переменную. Это просто раздражающее ограничение функции empty(). См. Вопрос this.

$results = $pQuery1->fetch(PDO::FETCH_ASSOC); 
if (empty($results)){} 
+6

ID как бы указать, что вы могли бы просто сделать 'if (! $ Results) {}', поскольку он ведет себя одинаково. – goat

+1

@chris if (empty ($ foo)) не генерирует предупреждение, если параметр не задан. if (! $ foo) генерирует предупреждение, если параметр не задан. http://php.net/manual/en/function.empty.php – Jake

+0

он был установлен на предыдущей строке :) – goat