[英]Alternative for mysql_num_rows using 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');
$stmt = $db->query('SELECT * FROM table');
$row_count = $stmt->rowCount();
echo $row_count.' rows selected';
也许您可以使用PDO的“ fetchAll”方法,该方法返回包含所有SELECT结果的数组。 然后使用“计数”方法对数组的行进行计数。
例如:
$rows = $stmt->fetchAll();
$num_rows = count($rows);
如果您没有使用准备好的语句,请尝试:
$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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.