Вот я выполняю некий select : Код (Text): $dbh = new PDO($cs[0], $cs[1], $cs[2]); $sql = "select top 1 ID from testtable"; echo $sql.'<BR>'; $row = $dbh->query($sql); Вот как мне теперь узнать, вернулась пустая выборка, или с данными? Неужели каждый раз select count(*) делать? Это же двойная работа...
э-э-э... Тогда я вообще ничего не понимаю. из мануала: Return Values PDO->query() returns a PDOStatement object. Кстати действительно объявлена как bool Но как bool может быть объектом???
Ступил. Можно так попробовать PHP: <?php if ($rows = $dbh->query($sql)->fetchAll()) { foreach ($rows as $row) { // ... работаем с записью } } или так PHP: <?php $res = $dbh->query($sql); if ($res->rowCount()) { // ... }
блин, вот что мне на этом форуме не нравится - не дают думать. совсем. взяли и написали весь код. также люди ничему, кроме копи/паста, не научатся! подскажите идею - пусть сами реализовывают!
Ты не переживай, я прежде чем написать и мануал почитал, и код раз 40 переписывал. Оба варианта пробовал. Сначала второй: в мануале сказано, что rowCount() - это только для Insert/Update/Delete. Для Select - не действует. Оговорка - можно сначала дёрнуть select count(*) from ... where ..., убедитьсяЮ что он не ноль, и только после этого уже фетчить значение. Этот вариант мне не нравится, т.к., фактически, в два прохода надо идти. Первый вариант. Ой, не заметил fetchAll. Сейчас попробую, как ты написал, но fetchAll() тоже пробовал, что-то не пошло (может неправильно использовал)?