Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да получите броя на редовете в MySQL таблицата с помощта на PHP?

Имате няколко опции как да получите стойността на COUNT(*) от SQL. Най-лесните три вероятно са следните:

$sql = "SELECT COUNT(*) FROM news";
$result = mysqli_query($con, $sql);
$count = mysqli_fetch_assoc($result)['COUNT(*)'];
echo $count;

или чрез псевдоним на колона:

$sql = "SELECT COUNT(*) as cnt FROM news";
$result = mysqli_query($con, $sql);
$count = mysqli_fetch_assoc($result)['cnt'];
echo $count;

или с помощта на числов масив:

$sql = "SELECT COUNT(*) FROM news";
$result = mysqli_query($con, $sql);
$count = mysqli_fetch_row($result)[0];
echo $count;

Ако използвате PHP 8.1, тогава можете да го направите още по-просто:

$sql = "SELECT COUNT(*) FROM news";
$result = mysqli_query($con, $sql);
$count = mysqli_fetch_column($result);
echo $count;
// or using OO style
echo $con->query("SELECT COUNT(*) FROM news")->fetch_column();

Не използвайте mysqli_num_rows за да преброите записите в базата данни, както се предлага на някои места в мрежата. Тази функция има много малко приложение и преброяването на записи определено не е една от тях. Използване на mysqli_num_rows ще помолите MySQL да извлече всички съвпадение на записи от база данни, което може да е много ресурсоемко. Много по-добре е да делегирате работата по броене на записи на MySQL и след това просто да получите върнатата стойност в PHP, както е показано в моя отговор.

Бих препоръчал също да научите ООП, което прави вашия код по-чист и по-лесен за четене. Същото с ООП може да се направи по следния начин:

$sql = "SELECT COUNT(*) FROM news";
$count = $con->query($sql)->fetch_row()[0];
echo $count;

Ако вашата заявка използва променливи, тогава бихте могли да направите подобно нещо, но с помощта на подготвени оператори.

$sql = "SELECT COUNT(*) FROM news WHERE category=?";
$stmt = $con->prepare($sql);
$stmt->bind_param('s', $category);
$stmt->execute();
$count = $stmt->get_result()->fetch_row()[0];
echo $count;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - присъединява се между бази данни на различни сървъри, използващи Python?

  2. Как да архивирам и възстановя MySQL база данни?

  3. Изхвърлете всички таблици във формат CSV с помощта на 'mysqldump'

  4. Възстановяване на изтрития 'root' потребител и парола за MySQL

  5. Neo4j - Създайте индекс с помощта на Cypher