php实现网页数据查询
PHP 实现网页数据查询的方法
连接数据库
使用 PHP 内置的 mysqli 或 PDO 扩展连接数据库。mysqli 适用于 MySQL 数据库,PDO 支持多种数据库类型。
// 使用 mysqli 连接 MySQL 数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
执行 SQL 查询
通过 SQL 语句查询数据库中的数据,并将结果存储在变量中。
$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"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
}
} else {
echo "0 结果";
}
处理查询结果
使用循环遍历查询结果,并将数据输出到网页上。fetch_assoc() 方法以关联数组形式返回每一行数据。
关闭数据库连接
查询完成后,关闭数据库连接以释放资源。

$conn->close();
使用 PDO 实现查询
PDO 提供了更灵活的数据库操作方式,支持预处理语句,防止 SQL 注入。
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT id, name, email FROM users");
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($result as $row) {
echo "ID: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
}
} catch(PDOException $e) {
echo "错误: " . $e->getMessage();
}
$conn = null;
通过表单提交查询条件
在网页上添加表单,允许用户输入查询条件,通过 $_GET 或 $_POST 获取用户输入并动态生成 SQL 查询。

<form method="post" action="search.php">
<input type="text" name="search_term" placeholder="输入查询关键词">
<input type="submit" value="查询">
</form>
$search_term = $_POST['search_term'];
$sql = "SELECT * FROM users WHERE name LIKE '%$search_term%' OR email LIKE '%$search_term%'";
分页显示查询结果
对于大量数据,可以通过分页提高用户体验。使用 LIMIT 和 OFFSET 实现分页查询。
$per_page = 10;
$page = isset($_GET['page']) ? $_GET['page'] : 1;
$offset = ($page - 1) * $per_page;
$sql = "SELECT * FROM users LIMIT $per_page OFFSET $offset";
$result = $conn->query($sql);
使用 AJAX 实现无刷新查询
通过 jQuery 或原生 JavaScript 发送 AJAX 请求,动态加载查询结果,无需刷新页面。
$("#search_form").submit(function(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: "search.php",
data: $(this).serialize(),
success: function(response) {
$("#results").html(response);
}
});
});
防止 SQL 注入
使用预处理语句或过滤用户输入,避免 SQL 注入攻击。
$stmt = $conn->prepare("SELECT * FROM users WHERE name = ?");
$stmt->bind_param("s", $search_term);
$stmt->execute();
以上方法涵盖了从基础到进阶的网页数据查询实现方式,适用于大多数 PHP 网页开发场景。






