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()
在某些情况下可能不返回期望的结果,特别是当你使用 DELETE
、INSERT
或 UPDATE
语句时。这是因为不同的数据库引擎可能有不同的行为。在某些情况下,你可能需要依赖数据库返回的行数,而不是 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();
}
在编写与数据库交互的代码时,请确保对可能出现的错误进行适当的错误处理。上述示例中的错误处理只是简单的示例,实际应用中可能需要更复杂的错误处理逻辑。