MySQLi 扩展
MySQLi 是 MySQL Improved 的缩写,它是一个 MySQL 的增强版。MySQLi 提供了面向对象和过程两种编程方式,可以更好地处理数据库操作。
面向对象风格的 MySQLi 连接
面向对象风格的 MySQLi 连接通常使用 mysqli 类来创建一个新的连接。以下是一个简单的例子:
// www.javascriptcn.com code example
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
?>过程风格的 MySQLi 连接
如果你更喜欢过程风格的编程,你可以使用 mysqli_connect() 函数来创建一个连接。以下是一个简单的例子:
// www.javascriptcn.com code example
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);
// 检测连接
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
echo "连接成功";
?>PDO 扩展
PDO 是 PHP Data Objects 的缩写,它提供了一个数据访问抽象层,这意味着无论你使用什么数据库,你可以使用相同的函数来查询和获取数据。PDO 提供了一种更安全的方式来处理数据库操作,并且支持多种数据库。
使用 PDO 进行数据库连接
使用 PDO 进行数据库连接需要创建一个新的 PDO 实例。以下是一个简单的例子:
// www.javascriptcn.com code example
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// 设置 PDO 错误模式为异常
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "连接成功";
} catch(PDOException $e) {
echo "连接失败: " . $e->getMessage();
}
?>使用预处理语句
预处理语句是防止 SQL 注入攻击的有效方法。以下是一个简单的例子:
// www.javascriptcn.com code example
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// 设置 PDO 错误模式为异常
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 预处理 SQL 语句
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES (:firstname, :lastname, :email)";
// 使用预处理语句
$stmt = $conn->prepare($sql);
// 绑定参数
$stmt->bindParam(':firstname', $firstname);
$stmt->bindParam(':lastname', $lastname);
$stmt->bindParam(':email', $email);
// 设置参数值并执行
$firstname = "John";
$lastname = "Doe";
$email = "john@example.com";
$stmt->execute();
echo "新记录插入成功";
} catch(PDOException $e) {
echo "错误: " . $e->getMessage();
}
$conn = null;
?>关闭数据库连接
当不再需要数据库连接时,你应该关闭连接以释放资源。对于 MySQLi 和 PDO,你可以使用以下代码来关闭连接:
<?php $conn = null; ?>
总结
在本章节中,我们学习了如何使用 MySQLi 和 PDO 进行数据库连接,并了解了预处理语句的重要性。使用预处理语句可以提高安全性并简化代码。希望这些知识能帮助你在未来的项目中更好地处理数据库操作。