簡體   English   中英

使用PDO替代mysql_num_rows

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM