PDOStatement :: rowCountの
PDOStatement :: rowCountのは - 影響を受けた行の数に(PHP 5> = 5.1.0、PECLのpdo> = 0.1.0)であるSQL文を返します。
説明
文法
int PDOStatement::rowCount ( void )
PDOStatement :: rowCountの()は、INSERT、DELETEを返す、またはUPDATEステートメントは、対応するPDOStatementオブジェクトによって実行された行の数に影響を与えました。
関連するPDOStatementによって実行されたSQL文は、SELECT文であった場合は、一部のデータは、このステートメントによって返される行の数を返すことがあります。 しかし、この方法は、すべてのデータが有効であることを保証することはできませんし、ポータブルアプリケーションのために、この方法に頼るべきではありません。
戻り値
行数を返します。
例
削除された行数を返します。
PDOStatement :: rowCountの()はDELETE、INSERT、UPDATE、または衝撃文によって影響を受けた行数を返します。
<?php /* 从 FRUIT 数据表中删除所有行 */ $del = $dbh->prepare('DELETE FROM fruit'); $del->execute(); /* 返回被删除的行数 */ print("Return number of rows that were deleted:\n"); $count = $del->rowCount(); print("Deleted $count rows.\n"); ?>
上の例の出力:
Return number of rows that were deleted: Deleted 9 rows.
SELECTステートメントによって返される行の数によって計算
ほとんどのデータベースでは、のPDOStatement :: rowCount()はSELECT文によって影響を受けた行数を返しません。 別の方法は、行数が返さ取得するためにはPDOStatement :: fetchColumn()を使用し、次にPDO ::クエリを()を使用し、同じ条件式SELECT COUNT(*)ステートメントのSELECT文を発行することを目的とし、することです。 アプリケーションが正しく実行できるようにします。
<?php $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; ?>
上の例の出力は、次のとおりです。
apple banana orange pear