PHP 连接数据库的常用方法296


PHP(超文本预处理器)是一种强大的服务器端脚本语言,广泛用于开发动态网站和 Web 应用。连接数据库是 PHP 中一项基本而重要的任务,可以访问、管理和操作存储的信息。

方法 1:mysqli

mysqli 扩展提供了与 MySQL 数据库交互的高级接口。它比早期的 mysql 扩展更安全、更高效。$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "dbname";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败:" . $conn->connect_error);
}

方法 2:PDO

PDO(PHP 数据对象)是连接和操作数据库的另一种方法。它提供了一个统一的接口,可与多种数据库系统(如 MySQL、PostgreSQL、Oracle 等)一起使用。$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "dbname";
// 创建连接
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// 设置 PDO 错误模式
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
die("连接失败:" . $e->getMessage());
}

方法 3:MySQLi 过程式接口

mysqli 还提供了一个过程式接口,它更接近于早期的 mysql 扩展。$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "dbname";
// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);
// 检查连接
if (!$conn) {
die("连接失败:" . mysqli_connect_error());
}

方法 4:PDO with prepared statements

准备好的语句可以防止 SQL 注入攻击,提高代码的安全性。$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "dbname";
// 创建连接
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
die("连接失败:" . $e->getMessage());
}
// 准备语句
$stmt = $conn->prepare("SELECT * FROM users WHERE username = ?");
// 绑定参数
$stmt->bindParam(1, $username);
// 执行语句
$stmt->execute();
// 获取结果
$result = $stmt->fetchAll();

方法 5:MySQLi with prepared statements

mysqli 也可以使用准备好的语句。$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "dbname";
// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);
// 检查连接
if (!$conn) {
die("连接失败:" . mysqli_connect_error());
}
// 准备语句
$stmt = $conn->prepare("SELECT * FROM users WHERE username = ?");
// 绑定参数
$stmt->bind_param("s", $username);
// 执行语句
$stmt->execute();
// 获取结果
$result = $stmt->get_result();
// 提取结果
while ($row = $result->fetch_assoc()) {
echo $row["username"] . " " . $row["email"] . "
";
}

选择方法

选择哪种方法取决于具体的需求和个人偏好。总的来说,mysqli 和 PDO 提供了更全面的功能,而过程式接口则更简单、更直观。准备好的语句对于防止 SQL 注入至关重要。

在选择方法时,还应该考虑数据库系统。mysqli 和 PDO 都支持 MySQL,而 PDO 还支持其他数据库系统,使代码更具可移植性。

2024-11-02


上一篇:MySQL 数据库操作类在 PHP 中的应用

下一篇:PHP 连接数据库的终极指南