MySQLPHP の行をカウントする
-
PDO の
fetchColumn()
メソッドを使用して、MySQL テーブルの行の総数をカウントする -
手続き型メソッドを使用して、
mysqli_num_rows()
関数を使用して MySQL テーブルの行数をカウントする -
オブジェクト指向の方法を使用して、
num_rows
プロパティを使用してテーブル内の行数をカウントする
fetchColumn()
および COUNT()
メソッドを使用して、PHP の MySQL のテーブルからすべての行をカウントするメソッドを紹介します。fetchColumn()
関数は PDO(PHP Data Objects)によって提供され、COUNT()
メソッドは SQL 関数です。PDO は、データベースとバックエンドを接続するオブジェクト指向の方法です。PDO は 12 の異なるデータベースシステムと互換性があるため、この方法は柔軟性があります。
mysqli_num_rows()
関数を使用して、テーブルからすべての行をカウントする別の方法を示します。このメソッドは、オブジェクト指向の方法を使用して、mysqli()
関数を使用してサーバーとのデータベース接続を確立します。ただし、残りのプロセスは手続き的に行われます。
PHP の num_rows
プロパティを使用して、テーブルからすべての行をカウントする方法を示します。このメソッドは、完全なオブジェクト指向の手法に従ってデータベースを接続し、行の総数をカウントします。このメソッドで prepared
ステートメントを使用すると、SQL インジェクションの脆弱性から安全になります。
PDO の fetchColumn()
メソッドを使用して、MySQL テーブルの行の総数をカウントする
PDO は、データベースを PHP サーバーに接続するためのオブジェクト指向の方法の 1つです。PDO で使用可能な fetchColumn()
メソッドを使用して、テーブルの行をカウントできます。まず、データベースを作成し、テーブルにデータを入力します。次に、正しいホスト、データベースユーザー名、データベースパスワード、およびデータベース名を使用してデータベース接続を設定します。PDO オブジェクトのインスタンスを使用して接続を保存します。データベース接続が機能していることを確認したら、COUNT()
関数を使用して SQL ステートメントをクエリして実行します。COUNT()
関数は、指定されたテーブルのすべての行をカウントするパラメーターとして*
を取ります。次に、fetchColumn()
メソッドを使用して、テーブルの行数を表示します。
以下の手順は、サーバーとのデータベース接続が確立されていることを前提としています。データベースのテーブルには 2つの行があります。
MariaDB [oop]> select * from users;
+----+-----------+------------+------------+
| id | firstname | lastname | dob |
+----+-----------+------------+------------+
| 1 | Dan | James | 1998-08-23 |
| 2 | Dean | Henderson | 2000-03-30 |
+----+-----------+----------+--------------+
2 rows in set (0.003 sec)
たとえば、Test.php
に、DB
クラスを継承する Test
という名前のクラスを記述します。クラス内にパブリック関数 getRowsNumber()
を記述します。変数 $sql
を割り当て、SELECT
ステートメントを使用してクエリを記述し、users
テーブルからすべてを選択します。SELECT
ステートメントで COUNT(*)
を使用して、行数をカウントします。connect
関数を使用して DB.php
から接続を取得し、query()
関数を使用して上記の SQL コマンドをクエリします。これらのタスクを $stmt
変数に割り当てます。$stmt
変数を使用して fetchColumn()
メソッドを呼び出し、結果を表示します。
以下の例では、スーパークラス DB
にデータベース接続を継続する connect()
メソッドが含まれています。getRowsNumber()
関数は、次のように別の php ファイルから呼び出されます。
$testObj = new Test();
$testObj->getRowsNumber()
サンプルコード:
# php 7.*
<?php
class Test extends DB {
public function getRowsNumber() {
$sql = "SELECT COUNT(*) FROM users";
$stmt = $this->connect()->query($sql);
$count = $stmt->fetchColumn();
print $count;
}
}
出力:
The total number of rows is: 2
手続き型メソッドを使用して、mysqli_num_rows()
関数を使用して MySQL テーブルの行数をカウントする
PHP の mysqli_num_rows()
関数を使用して、MySQL テーブルの行をカウントできます。mysqli()
関数のオブジェクトを作成して、データベースを PHP サーバーに接続できます。この関数は、ホスト名、ユーザー名、パスワード、およびデータベース名をパラメーターとして受け取ります。テーブルからすべての行を選択する SQL ステートメントを記述します。mysqli_query()
関数を使用してデータベース接続を使用し、クエリを実行します。次に、mysql_num_rows()
関数を使用して行数をカウントし、表示します。
以下の例では、最初の方法と同じデータベース、同じテーブル、およびテーブル内の同じデータを使用しています。
たとえば、ホスト名、ユーザー名、パスワード、およびデータベース名を、それぞれ変数 $host
、$username
、$password
、および $database
に割り当てます。new
キーワードを使用して mysqli()
関数のオブジェクトを作成し、関数のパラメーターとして変数を渡します。$conn
変数にオブジェクトの値を割り当てます。SQL クエリを記述して、$sql
変数の users
テーブルからすべてを選択します。変数 $result
を使用して、$conn
変数と $sql
変数を受け取る mysqli_query()
関数を格納します。if
条件を使用して、$result
変数のブール値を確認します。if
条件内で、パラメーターとして $request
変数を指定して mysqli_num_rows()
を使用し、それを $rowcount
変数に割り当てます。$rowcount
変数を出力します。
コード例:
#php 7.x
<?php
$conn = new mysqli($host, $username, $password, $database);
$sql = "SELECT * FROM users";
if ($result=mysqli_query($conn,$sql)) {
$rowcount=mysqli_num_rows($result);
echo "The total number of rows are: ".$rowcount;
}
?>
出力:
The total number of rows are: 2
オブジェクト指向の方法を使用して、num_rows
プロパティを使用してテーブル内の行数をカウントする
PHP の num_rows
プロパティを使用して、MySQL テーブルの行数をカウントできます。このアプローチでは、オブジェクト指向の方法を使用します。この方法は、データベース接続を作成して SQL クエリを作成する 2 番目の方法と非常によく似ています。プリペアドステートメントの使用は、この方法が 2 番目の方法とは異なります。prepare()
関数を使用してプリペアドステートメントを作成し、execute()
関数を使用してプリペアドステートメントを実行し、store_result()
関数を使用して結果を保存します。
たとえば、ホスト名、ユーザー名、パスワード、およびデータベース名を、それぞれ変数 $host
、$username
、$password
、および $database
に割り当てます。new
キーワードを使用して mysqli()
関数のオブジェクトを作成し、関数のパラメーターとして変数を渡します。$conn
変数にオブジェクトの値を割り当てます。SQL クエリを記述して、$sql
変数の users
テーブルからすべてを選択します。
変数 $stmt
を使用して、プリペアドステートメントを格納します。$conn
変数を使用して、sql
変数をパラメーターとして受け取る prepare()
関数を呼び出します。if
条件を使用して、$stmt
変数のブール値を確認します。if
条件内で、$stmt
変数を使用して execute()
関数を呼び出し、次に store_result()
関数を呼び出します。次に、num_rows
プロパティを呼び出して出力します。
サンプルコード:
#php 7.x
<?php
$conn = new mysqli($host, $username, $password, $database);
$sql = "SELECT * FROM users";
if ($stmt = $conn->prepare($sql)) {
$stmt->execute();
$stmt->store_result();
printf("Number of rows: %d.\n", $stmt->num_rows);
}
?>
出力:
Number of rows: 2.
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn