24

現在、MYSQLクエリを実行してから次のように行をカウントするPHPファイルがあります。

$count=mysql_num_rows($result);


if ($count == 1) {
    $message = array('status' => 'ok');
} else {
    $message = array('status' => 'error');
}

これは正常に機能しますが、PDOを使用するようにすべてのPHPファイルを変更しようとしています。では、これをPDOでどのように行うことができますか?

4

5 に答える 5

23
$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');
于 2012-07-03T06:17:10.247 に答える
18
$stmt = $db->query('SELECT * FROM table');  
$row_count = $stmt->rowCount();  
echo $row_count.' rows selected';
于 2016-04-12T06:54:40.307 に答える
6

たぶん、すべてのSELECT結果を含む配列を返すPDOの「fetchAll」メソッドを使用できます。次に、「count」メソッドを使用して配列の行をカウントします。

元:

$rows = $stmt->fetchAll();
$num_rows = count($rows);
于 2013-01-26T04:18:20.850 に答える
3

プリペアドステートメントを使用していない場合は、次を試してください。

$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';
}
于 2012-07-03T06:04:29.707 に答える