PDOを使ってレコード数を求める

rowCount()
を使う。
http://www.thinkit.co.jp/free/marugoto/1/4/2/1.html
ただし、rowCount()は、
SELECT 文によって作用した行数を返さないので
代わりに、 PDO::query() を使って 意図する SELECT 文として同様の述部を持つ
SELECT COUNT(*) 文を発行し、PDOStatement::fetchColumn() を使ってレコード数を求める必要がある。

$sql = "SELECT COUNT(*) FROM fruit WHERE calories > 100";
if ($res = $conn->query($sql)) {
/* SELECT 文にマッチする行数をチェックする */
if ($res->fetchColumn() > 0) {
/* 実際の SELECT 文を発行し、結果を処理する */
$sql = "SELECT name FROM fruit WHERE calories > 100";
foreach ($conn->query($sql) as $row) {
print "Name: " .  $row['NAME'] . "\n";
}
}
/* 行がマッチしなかった場合 -- 他に何かをする */
else {
print "No rows matched the query.";
}
}
$res = null;
$conn = null;
404 Not Found


その他

タイトルとURLをコピーしました