[英]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.