php数据库连接实现
PHP 数据库连接实现
PHP 连接数据库通常使用 PDO(PHP Data Objects)或 MySQLi(MySQL Improved)扩展。以下是两种方法的详细实现方式。
使用 PDO 连接数据库
PDO 是一个数据库访问抽象层,支持多种数据库(如 MySQL、PostgreSQL、SQLite 等)。以下是连接 MySQL 数据库的示例代码:
<?php
$host = 'localhost';
$dbname = 'database_name';
$username = 'username';
$password = 'password';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
关键点:
mysql:host=$host;dbname=$dbname是 DSN(数据源名称),指定数据库类型和连接参数。setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)设置错误模式为异常模式,便于调试。
使用 MySQLi 连接数据库
MySQLi 是专门为 MySQL 设计的扩展,支持面向对象和面向过程两种编程风格。
面向对象风格:
<?php
$host = 'localhost';
$username = 'username';
$password = 'password';
$dbname = 'database_name';
$conn = new mysqli($host, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
面向过程风格:
<?php
$host = 'localhost';
$username = 'username';
$password = 'password';
$dbname = 'database_name';
$conn = mysqli_connect($host, $username, $password, $dbname);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>
关键点:
new mysqli()或mysqli_connect()用于建立连接。connect_error或mysqli_connect_error()用于检查连接错误。
安全注意事项
- 避免将数据库凭据硬编码在脚本中,建议使用配置文件或环境变量。
- 使用预处理语句防止 SQL 注入攻击。
示例:使用 PDO 预处理语句
<?php
$pdo = new PDO("mysql:host=localhost;dbname=database_name", "username", "password");
$stmt = $pdo->prepare("SELECT * FROM users WHERE email = :email");
$stmt->bindParam(':email', $email);
$email = 'user@example.com';
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
print_r($result);
?>
示例:使用 MySQLi 预处理语句
<?php
$conn = new mysqli("localhost", "username", "password", "database_name");
$stmt = $conn->prepare("SELECT * FROM users WHERE email = ?");
$stmt->bind_param("s", $email);
$email = 'user@example.com';
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
print_r($row);
}
?>
连接关闭
PDO:
$pdo = null;
MySQLi:

$conn->close();
通过以上方法,可以安全高效地实现 PHP 与数据库的连接和操作。






