En ce moment, j'ai un fichier PHP qui fait une requête MYSQL puis compte les lignes comme ceci:
$count=mysql_num_rows($result);
if ($count == 1) {
$message = array('status' => 'ok');
} else {
$message = array('status' => 'error');
}
Cela fonctionne bien, mais j'essaie de changer tous mes fichiers PHP pour utiliser PDO. Alors, comment cela peut-il être fait avec PDO?
$res = $DB->query('SELECT COUNT(*) FROM table');
$num_rows = $res->fetchColumn();
ou
$res = $DB->prepare('SELECT COUNT(*) FROM table');
$res->execute();
$num_rows = $res->fetchColumn();
Vous pouvez l'utiliser pour demander si des données existent ou sont également sélectionnées:
$res = $DB->query('SELECT COUNT(*) FROM table');
$data_exists = ($res->fetchColumn() > 0) ? true : false;
Ou avec vos variables:
$res = $DB->query('SELECT COUNT(*) FROM table');
$message = ($res->fetchColumn() > 0) ? array('status' => 'ok') : array('status' => 'error');
$stmt = $db->query('SELECT * FROM table');
$row_count = $stmt->rowCount();
echo $row_count.' rows selected';
Vous pouvez peut-être utiliser la méthode "fetchAll" de PDO, qui renvoie un tableau contenant tous les résultats SELECT. Utilisez ensuite la méthode "count" pour compter les lignes du tableau.
Ex:
$rows = $stmt->fetchAll();
$num_rows = count($rows);
Si vous n'utilisez pas d'instructions préparées, essayez:
$find = $dbh->query('SELECT count(*) from table');
if ($find->fetchColumn() > 0){
echo 'found';
}
Cependant, si vous choisissez des déclarations préparées, que je recommande fortement, alors:
$find = $dbh->prepare('SELECT count(*) from table');
$find->execute();
if ($find->fetchColumn() > 0){
echo 'found';
}
Peut être comme ça ...
$numRows = $conn->query("SELECT COUNT(*) FROM yourtable")->fetchColumn();
echo $numRows;