Альтернатива для mysql_num_rows с использованием PDO

Прямо сейчас у меня есть PHP-файл, который выполняет MYSQL-запрос, а затем подсчитывает такие строки:

$count=mysql_num_rows($result); if ($count == 1) { $message = array('status' => 'ok'); } else { $message = array('status' => 'error'); } 

Это отлично работает, но я пытаюсь изменить все свои PHP-файлы для использования PDO. Итак, как это можно сделать с PDO?

 $res = $DB->query('SELECT COUNT(*) FROM table'); $num_rows = $res->fetchColumn(); 

или

 $res = $DB->prepare('SELECT COUNT(*) FROM table'); $res->execute(); $num_rows = $res->fetchColumn(); 

Вы можете использовать это, чтобы спросить, существуют или нет данные:

 $res = $DB->query('SELECT COUNT(*) FROM table'); $data_exists = ($res->fetchColumn() > 0) ? true : false; 

Или с вашими переменными:

 $res = $DB->query('SELECT COUNT(*) FROM table'); $message = ($res->fetchColumn() > 0) ? array('status' => 'ok') : array('status' => 'error'); 

Возможно, вы можете использовать метод «fetchAll» PDO, который возвращает массив, содержащий все результаты SELECT. Затем используйте метод count для подсчета строк массива.

Пример:

 $rows = $stmt->fetchAll(); $num_rows = count($rows); 

$ stmt = $ db-> query ('SELECT * FROM table');
$ row_count = $ stmt-> rowCount ();
echo $ row_count. ' выбранные строки;

Если вы не используете подготовленные инструкции, попробуйте:

 $find = $dbh->query('SELECT count(*) from table'); if ($find->fetchColumn() > 0){ echo 'found'; } 

Однако, если вы выберете подготовленные заявления, которые я настоятельно рекомендую, тогда:

 $find = $dbh->prepare('SELECT count(*) from table'); $find->execute(); if ($find->fetchColumn() > 0){ echo 'found'; } 

Может быть так …

 $numRows = $conn->query("SELECT COUNT(*) FROM yourtable")->fetchColumn(); echo $numRows; 
  $jmldata = $db->query("SELECT count(*) FROM blog_posts")->fetchColumn(); $jmlhalaman = $p->jumlahHalaman($jmldata, $batas); $linkHalaman = $p->navHalaman($_GET['halpost'], $jmlhalaman); echo "<div class='center_title_bar'>Halaman : $linkHalaman </div> </div></div></div> "; 

это работает спасибо 🙂

  //query for counting the total number of rows $result = $conn->prepare("SELECT COUNT(*) FROM your_table"); $result->execute(); $num_rows = $result->fetchColumn(); //condition to display the result if ($num_rows>0) { echo "there is some results =".$num_rows; }else{ echo "no result"; }