PHP连接数据库教程:MySQLi与PDO扩展详解
接下来,我们将详细介绍如何使用PHP的MySQLi和PDO扩展连接MySQL数据库。本文将涵盖以下内容: 1. MySQLi连接数据库 2. PDO连接数据库 3.创建数据库表 4.执行SQL查询 5.处理查询结果 6.关闭数据库连接 7.错误处理 MySQLi连接数据库 MySQLi是PHP中用于连接和操作MySQL数据库的一种扩展。以下是如何使用MySQLi连接数据库的示例: ```php //初始化连接 $mysqli = new mysqli('localhost', 'username', 'password', 'database_name'); //检查连接是否成功 if ($mysqli->connect_error) { die("连接失败:".$mysqli->connect_error); } ``` PDO连接数据库 PDO(PHP Data Objects)是PHP的另一种用于连接和操作数据库的扩展。以下是如何使用PDO连接数据库的示例: ```php //初始化连接 $pdo = new PDO('mysql:host=localhost;dbname=database_name', 'username', 'password'); //设置PDO错误模式为异常 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); ``` 创建数据库表 在连接数据库后,我们可以创建数据库表。以下是一个使用MySQLi创建表的示例: ```php //创建表 $sql = "CREATE TABLE IF NOT EXISTS users ( id INT(11) NOT NULL AUTO_INCREMENT, username VARCHAR(50) NOT NULL, email VARCHAR(100) NOT NULL, password VARCHAR(255) NOT NULL, PRIMARY KEY (id) )"; $mysqli->query($sql); ``` 执行SQL查询 在创建表后,我们可以执行SQL查询。以下是一个使用MySQLi执行查询的示例: ```php //查询用户数据 $sql = "SELECT FROM users"; $result = $mysqli->query($sql); //遍历结果集并输出每条记录 while ($row = $result->fetch_assoc()) { echo "ID: " . $row["id"] . " - Username: " . $row["username"] . " } ``` 处理查询结果 在执行查询后,我们可以处理查询结果。以下是一个使用PDO处理查询结果的示例: 2025AI目标图像,仅供参考 ```php//查询用户数据 $stmt = $pdo->prepare("SELECT FROM users"); $stmt->execute(); //获取查询结果 $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); //遍历结果集并输出每条记录 foreach ($rows as $row) { echo "ID: " . $row["id"] . " - Username: " . $row["username"] . " } ``` 关闭数据库连接 在处理完数据后,别忘了关闭数据库连接。以下是如何关闭MySQLi和PDO连接的示例: ```php //关闭MySQLi连接 $mysqli->close(); //关闭PDO连接 $pdo->close(); ``` 错误处理 在操作数据库时,可能会遇到错误。我们需要使用错误处理机制来处理这些错误。以下是一个使用MySQLi和PDO处理错误的示例: ```php // 使用MySQLi错误处理 $mysqli->connect_error && die("连接失败:".$mysqli->connect_error); // 使用PDO错误处理 try { $pdo->connect('localhost', 'username', 'password', 'database_name') ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { echo "连接失败:".$e->getMessage(); } ``` 通过以上示例,您可以了解如何使用MySQLi和PDO扩展连接和操作MySQL数据库。希望这对您有所帮助! (编辑:广西网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |