Intereting Posts
Запуск: невозможно загрузить динамическую библиотеку '/usr/lib/php/modules/module.so' Как открыть файл на PHP, который имеет символы Unicode в его имени? Как использовать PHPdoc в Eclipse Как удалить «через» и имя сервера при отправке писем с помощью PHP? Переопределение файла шаблона Magento Adminhtml Функция isset () возвращает true, даже если элемент не задан несколько cURL и выход JSON? Как включить PHP-файл на страницы SHTML? Как получить идентификатор последнего загруженного видео в канале YouTube array_unique для массивов внутри массива Разрешение отклонено при открытии файла с помощью file_get_contents; webbrowser может открыть его без проблем JQM – JQuery Mobile 1.4.2 бесконечное обновление, это ошибка? PHP-преобразование многомерного массива в модифицированное дерево обхода порядка Не удается получить токен из Uber API с ключом действительного доступа Вызов функции-члена где () на не-объекте Laravel 4.2

Почему PDO fetchColumn () не работает здесь

Я пытаюсь подсчитать количество строк, возвращаемых запросом, и я делаю вот так:

$what = 'Norman'; $stmt = $conn->prepare('select names as names from names where names = :what'); $stmt->bindParam('what', $what); $stmt->execute(); $rows = $stmt->fetchColumn(); echo 'Rows found '.$rows; $stmt->setFetchMode(PDO::FETCH_ASSOC); while($row = $stmt->fetch()) { echo $row['names'] . "<br>"; } 

Но я вообще ничего не получаю. Просто пусто. Каков правильный способ сделать это?

Если вы хотите получить количество возвращаемых строк, используйте rowCount

 // ... $rows = $stmt->rowCount(); echo 'Rows found '.$rows; // ... 

Похоже, вы используете здесь ненадлежащие функции.

 $what = 'Norman'; $stmt = $conn->prepare('select names from names where names = ?'); $stmt->execute(array($what)); $rows = $stmt->fetchAll(); // it will actually return all the rows echo 'Rows found '.count($rows); foreach ($rows as $row) { echo $row['names'] . "<br>"; } 

или вы можете сделать его еще более аккуратным, получив 1d-массив вместо 2d

 $rows = $stmt->fetchAll(PDO::FETCH_COLUMN, 0); echo 'Rows found '.count($rows); foreach ($rows as $name) { echo $name . "<br>"; } 

Но сначала вы должны сначала проверить ошибки PDO