PHP连接MySQL数据库:从基础到进阶
"本文介绍了PHP连接MySQL数据库的六种方法,从简单到复杂,涵盖了面向过程和面向对象的方式,旨在帮助读者快速掌握与MySQL交互的技巧。" PHP是一种广泛用于Web开发的服务器端脚本语言,而MySQL是常用的开源关系型数据库管理系统。两者结合可以构建动态、数据驱动的网站。下面将详细解释这两种连接MySQL数据库的方法: 1. 最简单的方式 - mysql(面向过程) 在PHP中,`mysql`扩展是早期用于连接MySQL数据库的接口。以下是一个简单的示例: ```php <?php $con = mysql_connect("localhost", "root", "password"); // 连接数据库服务器 $select_db = mysql_select_db('test', $con); // 选择数据库 if (!$select_db) { die("无法连接数据库:\n" . mysql_error()); // 错误处理 } $sql = "SELECT * FROM db_table"; // SQL查询语句 $res = mysql_query($sql, $con); if (!$res) { die("无法获取结果:\n" . mysql_error()); // 查询失败处理 } while ($row = mysql_fetch_assoc($res)) { print_r($row); // 输出查询结果 } // 关闭数据库连接 mysql_close($con); ?> ``` 请注意,`mysql`扩展自PHP 5.5.0版本后被弃用,从PHP 7.0.0版本起不再支持,因此在新项目中不建议使用。 2. 新的方式 - mysqli(面向过程) `mysqli`扩展是MySQL Improved的缩写,它提供了更安全、更强大的功能,包括预处理语句和面向对象的接口。以下是面向过程的示例: ```php <?php $mysql_server_name = 'localhost'; // 数据库服务器 $mysql_username = 'root'; // 数据库用户名 $mysql_password = 'password'; // 数据库密码 $mysql_database = 'test'; // 数据库名 $conn = mysqli_connect($mysql_server_name, $mysql_username, $mysql_password, $mysql_database); // 连接数据库 // 连接错误处理 if (mysqli_connect_errno($conn)) { die("连接MySQL失败: " . mysqli_connect_error()); } mysqli_query($conn, "SET NAMES utf8"); // 设置数据库编码格式 // 或者使用:mysqli_set_charset($conn, "utf8"); // 设置默认客户端字符集 // 查询代码 $sql = "SELECT * FROM db_table"; $query = mysqli_query($conn, $sql); ``` 3. mysqli(面向对象) 除了面向过程的接口,mysqli还提供了面向对象的风格,使得代码更加整洁: ```php <?php $servername = 'localhost'; $username = 'root'; $password = 'password'; $dbname = 'test'; // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检查连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 设置字符集 $conn->set_charset("utf8"); // 查询代码 $sql = "SELECT * FROM db_table"; $result = $conn->query($sql); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>"; } } else { echo "0 results"; } // 关闭连接 $conn->close(); ?> ``` 4. PDO(PHP Data Objects) PDO是另一种连接多种数据库的方法,它提供了统一的接口。对于MySQL,可以使用`PDO_MYSQL`驱动: ```php <?php $host = 'localhost'; $db = 'test'; $user = 'root'; $pass = 'password'; $charset = 'utf8mb4'; $dsn = "mysql:host=$host;dbname=$db;charset=$charset"; $opt = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, ]; $pdo = new PDO($dsn, $user, $pass, $opt); // 查询代码 $sql = "SELECT * FROM db_table"; $stmt = $pdo->query($sql); foreach ($stmt as $row) { print_r($row); } ?> ``` 5. 使用PDO预处理语句 预处理语句可以防止SQL注入,提高安全性: ```php <?php $stmt = $pdo->prepare("SELECT * FROM db_table WHERE id = :id"); $stmt->bindParam(':id', $id, PDO::PARAM_INT); $id = 1; $stmt->execute(); foreach ($stmt as $row) { print_r($row); } ?> ``` 6. 使用mysqli预处理语句 同样,mysqli也支持预处理语句,提高了安全性: ```php <?php $stmt = $conn->prepare("SELECT * FROM db_table WHERE id = ?"); $stmt->bind_param("i", $id); $id = 1; $stmt->execute(); $result = $stmt->get_result(); while ($row = $result->fetch_assoc()) { print_r($row); } $stmt->close(); ?> ``` 以上就是PHP连接MySQL数据库的六种常见方法。在实际开发中,推荐使用mysqli或PDO,因为它们更安全且支持预处理语句,同时提供了面向对象的编程风格。在处理用户输入时,尤其要确保使用预处理语句来防止SQL注入攻击。
下载后可阅读完整内容,剩余3页未读,立即下载
- 粉丝: 1
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦