Альтернатива для 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?

7 ответов

$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');


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

Пример:

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


$stmt = $db->query('SELECT * FROM table'); 
$row_count = $stmt->rowCount(); 
echo $row_count.' rows selected';


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

$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>Halaman : $linkHalaman </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";
 }

licensed under cc by-sa 3.0 with attribution.