Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie erhält man die insgesamt gefundenen Zeilen, ohne das Limit in PDO zu berücksichtigen?

Nur MySQL AFAIK:

$r=$db->prepare("SELECT SQL_CALC_FOUND_ROWS * FROM locations WHERE area=:area LIMIT $start,10");
$r->execute($fields);

var_dump($r->fetchAll());

var_dump($db->query('SELECT FOUND_ROWS();')->fetch(PDO::FETCH_COLUMN));

Natürlich ungefähr so ​​schwer für den Datenbankserver wie eine einzige Abfrage aller Datensätze. Für die Nicht-MySQL-Nutzung ist diese Abfrage natürlich besser, als die Zeilenanzahl von all zu erhalten die Aufzeichnungen:

$r=$db->prepare("SELECT COUNT(*) FROM locations WHERE area=:area");
$r->execute($fields);
$count = $r->fetch(PDO::FETCH_COLUMN);
echo $count;