2017-02-02 1 views
-1

Название в значительной степени говорит все. Если выборка - единственный способ проверить, есть ли способ сбросить итератор выборки?Есть ли способ проверить запрос выбора pdo для хотя бы одной строки, найденной без извлечения?

+0

Обычно вы должны выполнить запрос SELECT COUNT (*) FROM ... ', если вы просто хотите подсчет. Если бы вы все равно использовали все данные, вы также могли бы fetchAll получить все строки и получить count() из них. Затем вы можете использовать этот возвращенный массив позже в своем коде, когда обычно вы используете извлечение. Вы можете попробовать метод PDOStatement :: rowCount, но вы не можете действительно гарантировать, что он вернет количество строк для выбранных операторов, как указано в руководстве. В некоторых случаях это может сработать. –

+0

Не дуп. На вопрос об итераторе. Я придумал это, после первоначальной выборки, чтобы проверить успех. while ($ pending_fetch || ($ row = $ sth-> fetch ....)) {$ pending_fetch = 0 – user116032

+0

Riggs, пожалуйста, укажите ссылку на то, что, по вашему мнению, было dup. Я этого не нашел. Я готов вытащить вилку, если она есть. Я прочитал тот, который вы указали. Он не рассматривал манипуляторы итератора. – user116032

ответ

-1

Да, хорошо, вы можете выполнить его встроенный.

if (!$pdo->query("SELECT COUNT(*) FROM mytable")->fetchColumn()) { 
    echo "Ooops, didn't find anything"; 
} 
+1

Спасибо. Копы идут за мной, поэтому его, вероятно, удалит. У вас есть очки. – user116032

Смежные вопросы