在 PHP MySQL 表中计算行数
-
使用 PDO 的
fetchColumn()
方法计算 MySQL 表中的总行数 -
使用过程方法使用
mysqli_num_rows()
函数对 MySQL 表中的行数进行计数 -
使用面向对象的方法通过
num_rows
属性对表中的行数进行计数
我们将介绍一种使用 fetchColumn()
和 COUNT()
方法对 PHP 中 MySQL 表中所有行进行计数的方法。fetchColumn()
函数由 PDO(PHP 数据对象)给出,而 COUNT()
方法是一个 SQL 函数。PDO 是连接数据库和后端的一种面向对象的方法。该方法非常灵活,因为 PDO 与 12 个不同的数据库系统兼容。
我们将演示使用 mysqli_num_rows()
函数对表中的所有行进行计数的另一种方法。该方法使用一种面向对象的方法,通过 mysqli()
函数与服务器建立数据库连接。但是,其余过程将按程序进行。
我们将演示一种使用 PHP 中的 num_rows
属性对表中所有行进行计数的方法。此方法遵循完整的面向对象的实践来连接数据库并计算总行数。在此方法中使用 prepared
语句可以使它免受 SQL 注入漏洞的影响。
使用 PDO 的 fetchColumn()
方法计算 MySQL 表中的总行数
PDO 是将数据库与 PHP 服务器连接的面向对象的方法之一。我们可以使用 PDO 中可用的 fetchColumn()
方法对表的行进行计数。首先,我们创建一个数据库,并在表中填充数据。然后,我们使用正确的主机,数据库用户名,数据库密码和数据库名称来建立数据库连接。我们使用 PDO 对象的实例来存储连接。一旦确定数据库连接正常,就使用 COUNT()
函数查询 SQL 语句并执行它。COUNT()
函数将*
作为参数,对指定表中的所有行进行计数。然后,我们使用 fetchColumn()
方法显示表中的行数。
以下说明假定与服务器建立了数据库连接。数据库的表中有两行。
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
中,编写一个名为 Test
的类,该类继承了 DB
类。在类内编写一个公共函数 getRowsNumber()
。分配变量 $sql
并使用 SELECT
语句编写查询以从 users
表中选择所有内容。在 SELECT
语句中使用 COUNT(*)
来计算行数。使用 connect
函数从 DB.php
获取连接,并使用 query()
函数查询上面编写的 SQL 命令。将这些任务分配给 $stmt
变量。使用 $stmt
变量调用 fetchColumn()
方法并显示结果。
在下面的示例中,超类 DB
包含构成数据库连接的 connect()
方法。从另一个 php 文件中调用 getRowsNumber()
函数,方法是:
$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
来存储 mysqli_query()
函数,该函数接受 $conn
和 $sql
变量。使用 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 查询方面与第二种方法非常相似。准备语句的使用与第二种方法不同。我们使用 prepare()
函数来创建一条准备好的语句,使用 execute()
函数来执行该准备好的语句,并使用 store_result()
函数来存储结果。
例如,将主机名、用户名、密码和数据库名分别分配给变量 $host
、$username
、$password
和 $database
。使用 new
关键字创建 mysqli()
函数的对象,并将变量作为函数的参数传递。在 $conn
变量中分配对象的值。编写一个 SQL 查询以从 $sql
变量的 users
表中选择所有内容。
使用变量 $stmt
来存储准备好的语句。使用 $conn
变量调用 prepare()
函数,该函数将 sql
变量作为参数。使用 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