📜  在 php 中获取 count sql 查询(1)

📅  最后修改于: 2023-12-03 15:23:15.338000             🧑  作者: Mango

在 PHP 中获取 count SQL 查询

在 PHP 中,我们经常需要在数据库中执行查询语句来获取数据。而其中一种常见的需求就是需要获取某个表中满足条件的记录数。针对这种需求,我们可以使用 SQL 中的 count 函数来实现。

在 PHP 中,我们可以使用 mysqli 或 PDO 等库来操作数据库。以下是使用 mysqli 常规操作进行 count 查询的示例代码:

<?php
$mysqli = new mysqli('localhost', 'username', 'password', 'database');
if ($mysqli->connect_error) {
    die('Failed to connect to MySQL: (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
}

$query = "SELECT COUNT(*) AS count FROM table WHERE condition = ?";
$stmt = $mysqli->prepare($query);
$stmt->bind_param('s', $condition);
$stmt->execute();
$stmt->bind_result($count);
$stmt->fetch();
$stmt->close();

echo "查询到的记录数为:$count";

以上代码使用了 mysqli 库,首先建立了一个连接,然后准备了一个带占位符的 count 查询语句。接着通过 bind_param 函数为占位符绑定了条件,然后执行了查询语句,通过 bind_result 函数将查询结果绑定到变量 $count 中,最后输出查询结果。

下面是使用 PDO 操作进行 count 查询的示例代码:

<?php
$dsn = 'mysql:host=localhost;dbname=database';
$username = 'username';
$password = 'password';
$options = [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES => false,
];
try {
    $pdo = new PDO($dsn, $username, $password, $options);
} catch (PDOException $e) {
    die($e->getMessage());
}

$query = "SELECT COUNT(*) AS count FROM table WHERE condition = ?";
$stmt = $pdo->prepare($query);
$stmt->execute([$condition]);
$count = $stmt->fetchColumn();
echo "查询到的记录数为:$count";

以上代码使用了 PDO 库,首先通过构造函数建立了一个连接,并设置了一些选项。接着准备了一个带占位符的 count 查询语句,然后通过 execute 函数执行了查询语句并传入了条件。最后调用 fetchColumn 函数获取查询结果并输出。

无论是使用 mysqli 还是 PDO,我们都需要注意 SQL 注入的问题。在使用带占位符的查询语句时,一定要将参数进行预处理和绑定,以避免 SQL 注入攻击。

参考链接: