PHP中查询MySQL数据常用MySQLi和PDO。1. MySQLi支持过程和对象方式,适合基础应用;2. PDO支持多数据库、预处理和异常处理,更安全灵活,推荐现代开发使用,尤其需防SQL注入时应优先选用PDO预处理语句。

在PHP中查询MySQL数据,通常使用MySQLi或PDO扩展。这两种方式都能安全高效地执行数据库操作。下面详细介绍如何用这两种方法连接并查询MySQL数据。
1. 使用MySQLi进行查询(面向过程)
这是较基础的方式,适合初学者理解流程。步骤如下:
- 使用
mysqli_connect()连接数据库 - 检查连接是否成功
- 执行SQL查询语句
- 处理结果集
- 关闭连接
示例代码:
$host = 'localhost'; $username = 'root'; $password = ''; $database = 'test_db';// 建立连接 $conn = mysqli_connect($host, $username, $password, $database);
// 检查连接 if (!$conn) { die("连接失败: " . mysqli_connect_error()); }
// 执行查询 $sql = "SELECT id, name, email FROM users"; $result = mysqli_query($conn, $sql);
// 检查是否有结果 if (mysqli_num_rows($result) > 0) { while($row = mysqli_fetch_assoc($result)) { echo "ID: " . $row["id"]. " - 名字: " . $row["name"]. " - 邮箱: " . $row["email"]. "
"; } } else { echo "0 个结果"; }// 关闭连接 mysqli_close($conn);
2. 使用MySQLi(面向对象)
结构更清晰,推荐用于中小型项目。示例:
立即学习“PHP免费学习笔记(深入)”;
$host = 'localhost'; $username = 'root'; $password = ''; $database = 'test_db';$conn = new mysqli($host, $username, $password, $database);
if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); }
$sql = "SELECT id, name, email FROM users"; $result = $conn->query($sql);
if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo "ID: " . $row["id"]. " - 名字: " . $row["name"]. " - 邮箱: " . $row["email"]. "
"; } } else { echo "0 个结果"; }$conn->close();
白月生产企业订单管理系统GBK2.0 Build 080807下载请注意以下说明:1、本程序允许任何人免费使用。2、本程序采用PHP+MYSQL架构编写。并且经过ZEND加密,所以运行环境需要有ZEND引擎支持。3、需要售后服务的,请与本作者联系,联系方式见下方。4、本程序还可以与您的网站想整合,可以实现用户在线服务功能,可以让客户管理自己的信息,可以查询自己的订单状况。以及返点信息等相关客户利益的信息。这个功能可提高客户的向心度。安装方法:1、解压本系统,放在
3. 使用PDO查询(推荐方式)
支持多种数据库,具备更好的异常处理和预处理机制,适合现代PHP开发。示例:
立即学习“PHP免费学习笔记(深入)”;
$host = 'localhost'; $dbname = 'test_db'; $username = 'root'; $password = '';try { $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password); // 设置错误模式为异常 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT id, name, email FROM users"; $stmt = $pdo->query($sql); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { echo "ID: " . $row["id"]. " - 名字: " . $row["name"]. " - 邮箱: " . $row["email"]. "zuojiankuohaophpcnbryoujiankuohaophpcn"; }} catch(PDOException $e) { echo "查询出错: " . $e->getMessage(); } // 连接自动关闭
4. 安全提示:防止SQL注入
直接拼接用户输入的SQL非常危险。应使用预处理语句。PDO预处理示例:
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([$_GET['id']]);
$user = $stmt->fetch();
使用命名参数更清晰:
$stmt = $pdo->prepare("SELECT * FROM users WHERE name = :name");
$stmt->execute([':name' => $name]);
基本上就这些。选择MySQLi或PDO都可以,但PDO更灵活、更安全。实际开发中建议始终使用预处理语句,避免SQL注入风险。











