PHP数据库函数:如何使用mysqli和PDO来连接并操作MySQL等数据库
在PHP编程中,我们经常需要与数据库进行交互,以便存储、检索和更新数据。PHP提供了两种常用的方式来连接和操作数据库:mysqli和PDO。这篇文章将介绍如何使用mysqli和PDO来连接和操作MySQL等数据库。
一、mysqli
mysqli是PHP中面向对象的MySQL扩展库,提供了面向对象和面向过程两种方式。下面分别介绍这两种方式的使用方法。
1.面向对象方式
面向对象方式的使用方法如下:
//连接数据库
$conn = new mysqli($servername, $username, $password, $dbname);
//检查连接是否成功
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
//查询数据
$sql = "SELECT * FROM table_name";
$result = $conn->query($sql);
//输出数据
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Age: " . $row["age"]. "<br>";
}
} else {
echo "0 结果";
}
//关闭连接
$conn->close();
在这个例子中,首先我们用mysqli类创建一个$conn对象,将其连接到数据库。然后,我们准备一个SQL查询语句,并通过$conn对象的query()方法去执行它。如果执行成功,query()方法将返回一个$result结果集对象,我们可以通过它来获取查询的结果。最后,我们使用while循环来遍历结果集,从中取出每一行数据。
2.面向过程方式
下面是面向过程方式的示例代码:
//连接数据库
$conn = mysqli_connect($servername, $username, $password, $dbname);
//检查连接是否成功
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
//查询数据
$sql = "SELECT * FROM table_name";
$result = mysqli_query($conn, $sql);
//输出数据
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Age: " . $row["age"]. "<br>";
}
} else {
echo "0 结果";
}
//关闭连接
mysqli_close($conn);
在这个例子中,我们使用mysqli_connect()函数创建一个连接句柄$conn,之后使用mysqli_query()函数执行一个SQL查询语句,并通过mysqli_num_rows()和mysqli_fetch_assoc()函数来取出每一行数据。
二、PDO
PDO是PHP中的另一个常用的数据库扩展库,其全称是PHP Data Objects。与mysqli相比,PDO提供了更多的数据库支持,包括MySQL、SQLite、PostgreSQL等常见的数据库。下面是使用PDO连接MySQL数据库的示例。
//连接到MySQL数据库
$dsn = "mysql:host=$servername;dbname=$dbname";
try {
$conn = new PDO($dsn, $username, $password);
//设置PDO错误模式为异常
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "连接成功";
} catch(PDOException $e) {
echo "连接失败: " . $e->getMessage();
}
在上述代码中,我们使用PDO类创建了一个新的PDO对象,其dsn参数定义了需要连接的MySQL服务器地址和数据库名。我们还设置了PDO错误模式为异常,这样可以在出现错误时立即抛出异常,帮助我们更快地发现问题。如果连接成功,我们输出一个“连接成功”的提示信息。
接下来,我们可以使用PDO类中的各种方法执行数据库操作。例如,使用prepare()函数可以准备一个SQL查询语句,然后通过execute()函数来执行它。以下是一个使用PDO查询数据的示例。
//使用PDO查询数据
$stmt = $conn->prepare("SELECT * FROM table_name");
$stmt->execute();
//输出数据
$result = $stmt->fetchAll();
if (count($result) > 0) {
foreach($result as $row) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Age: " . $row["age"]. "<br>";
}
} else {
echo "0 结果";
}
在这个例子中,我们首先使用PDO的prepare()函数准备一个SELECT查询语句,并通过execute()函数来执行它。接着,我们使用fetchAll()函数将所有的查询结果取出,并遍历结果集中的每一行数据。
三、总结
本文介绍了两种PHP数据库扩展库——mysqli和PDO的使用方法,示例中分别演示了面向对象和面向过程两种方法。它们分别适合于不同的编程习惯和场景,可以根据实际需求选择使用。在查询和操作数据时,我们需要注意SQL注入等安全问题,避免不必要的风险。
