mysqli
和 PDO
(PHP Data Objects)都是 PHP 中用于连接和操作数据库的扩展。它们各有优势和适用场景,以下是对两者的详细比较:
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_error) {
die("连接失败: " . $mysqli->connect_error);
}
$sql = "SELECT id, name FROM users WHERE id = ?";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param("i", $id);
$id = 1;
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
echo "ID: " . $row["id"] . " - Name: " . $row["name"] . "<br>";
}
$stmt->close();
$mysqli->close();
$dsn = "mysql:host=localhost;dbname=database";
$user = "user";
$password = "password";
try {
$pdo = new PDO($dsn, $user, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT id, name FROM users WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':id', $id);
$id = 1;
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($result as $row) {
echo "ID: " . $row["id"] . " - Name: " . $row["name"] . "<br>";
}
} catch (PDOException $e) {
echo "数据库连接失败: " . $e->getMessage();
}
$pdo = null;
选择 mysqli
还是 PDO
取决于你的具体需求,如果你只需要操作 MySQL 数据库且追求高性能,可以选择 mysqli
;如果你需要支持多种数据库或更注重代码的可移植性和安全性,建议选择 PDO
。
领取专属 10元无门槛券
手把手带您无忧上云