欢迎访问宙启技术站
智能推送

PHP数据库函数:如何使用mysqli和PDO来连接并操作MySQL等数据库

发布时间:2023-06-18 22:33:30

在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注入等安全问题,避免不必要的风险。