跳到主要内容

PHP 哪个函数为我们提供了查询所影响的条数?

参考答案:

在 PHP 中,当你使用数据库扩展(如 MySQLi 或 PDO)执行更新、删除或插入操作后,可以使用特定的函数或方法来获取受影响的行数。

对于 MySQLi 扩展:

你可以使用 mysqli_affected_rows() 函数来获取最近执行的查询所影响的行数。

示例:

$mysqli = new mysqli("localhost", "username", "password", "database");

if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli->connect_error;
    exit();
}

$mysqli->query("DELETE FROM tablename WHERE some_condition");

$affectedRows = $mysqli->affected_rows;
echo "Affected rows: " . $affectedRows;

$mysqli->close();

对于 PDO 扩展:

你可以使用 rowCount() 方法来获取最近执行的查询所影响的行数。但请注意,rowCount() 在某些情况下可能不返回期望的结果,特别是当你使用 DELETEINSERTUPDATE 语句时。这是因为不同的数据库引擎可能有不同的行为。在某些情况下,你可能需要依赖数据库返回的行数,而不是 PDO 的 rowCount()

示例:

try {
    $pdo = new PDO("mysql:host=localhost;dbname=database", "username", "password");
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $stmt = $pdo->prepare("DELETE FROM tablename WHERE some_condition");
    $stmt->execute();

    $affectedRows = $stmt->rowCount();
    echo "Affected rows: " . $affectedRows;
} catch (PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}

在编写与数据库交互的代码时,请确保对可能出现的错误进行适当的错误处理。上述示例中的错误处理只是简单的示例,实际应用中可能需要更复杂的错误处理逻辑。