SQL 集計関数を使用して、追加、削除、変更の影響を受ける行数を取得するにはどうすればよいですか?
さらなるアクションを実行する前に、クエリによって返された行数、またはクエリによって影響を受けた行数を計算できることは、通常、この関数は、結果をページに表示したり、統計情報を生成したりする場合に特に便利です。影響を受ける行の数 これはどのようにして達成されるのでしょうか?
1. SQL 集計関数 COUNT を使用して、遅延結果レコードの数をカウントします。
COUNT は、クエリまたはクエリの一部の行数を返し、通常は DINSTINCT と一緒に使用されます。 SQL の集計関数 COUNT は、さまざまなデータベースで広くサポートされています。
2. PDOStatement->rowCount() メソッド
PDOStatement->rowCount() メソッドを通じて影響を受ける行の数を返し、UPDATE、INSERT、または DELECTE クエリによって影響を受ける行の数を取得します。 rowCount() メソッドは一般的な PHP アプリケーションでは一般的ではありませんが、PDOStatement->execute を呼び出した後に影響を受けた行数をカウントできます。
3. アプリケーション例
SQL 集計関数 COUNT を通じてクエリによって返されたレコードの数をカウントします。 具体的なコードは次のとおりです。
<form action="5.php" name="form1" method="post"> 查询关键字:<input type="text" name="username" id="nr"> <input type="submit" name="Submit" value="查询"> </form> <?php header("Content-Type:text/html; charset=utf-8"); //设置页面的编码格式 if(isset($_POST['Submit']) && $_POST['Submit']=="查询") { $dbms = "mysql"; // 数据库的类型 $dbName ="php_cn"; //使用的数据库名称 $user = "root"; //使用的数据库用户名 $pwd = "root"; //使用的数据库密码 $host = "localhost"; //使用的主机名称 $dsn = "$dbms:host=$host;dbname=$dbName"; try { $dbh = new PDO($dsn, $user, $pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "SELECT COUNT(*) FROM user WHERE username = :id";//需要执行的sql语句 $stmt = $dbh->prepare($sql);//准备查询语句 $stmt->bindParam(':id', $_POST['nr'], PDO::PARAM_STR); //执行查询语句,并返回结果集 $result = $stmt->execute(); echo 'There are',$stmt->fetchColumn(),'rows returned.'; }catch (PDOException $e){ echo 'PDO Exception Caught.'; echo 'Error with the database:<br>'; echo 'SQL Query:',$sql; echo 'Error:'.$e->getMessage(); } } ?>
この例を実行するには、データベースの名前を入力します。テキスト ボックスにクエリを入力し、[クエリ] ボタンをクリックすると、以下に示すようにクエリ結果の行数が表示されます。
注:
UPDATE ステートメントと DELETE ステートメントを使用する場合は、必ず WHERE 句を追加してください。 WHERE 句が追加されていない場合は、いつでもデータベース内のすべての列が更新されるか、テーブル内のすべてのデータが削除される可能性があります。どちらの場合も、それはユーザーが望むものではありません。
以上がSQL 集計関数による追加、削除、変更の影響を受ける行数を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。