📅  最后修改于: 2023-12-03 14:51:18.618000             🧑  作者: Mango
在 PHP 中查询 SQL 是非常常见的操作,它是通过和数据库交互从而获取所需数据的方法。在本文中,我们将介绍如何在 PHP 中使用 SQL 查询。
在查询数据之前,我们需要先连接到数据库。在 PHP 中,我们可以使用 MySQLi 或 PDO 扩展来连接到 MySQL 数据库。下面是一个使用 MySQLi 扩展来连接到数据库的示例代码:
<?php
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
?>
在连接到数据库之后,我们可以执行 SQL 查询,以获取所需的数据。在 PHP 中,我们可以使用 mysqli_query()
函数执行 SQL 查询。下面是一个从名为 users
的表中获取所有数据的示例:
<?php
$sql = "SELECT * 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["age"]. "<br>";
}
} else {
echo "没有数据";
}
mysqli_close($conn);
?>
在执行 SQL 查询时,我们需要注意 SQL 注入问题。SQL 注入是一种攻击技术,它可用于绕过应用程序的身份验证,并从数据库中窃取或修改数据。为了防止 SQL 注入,我们应该使用参数化查询或准备好的语句。
参数化查询是一种使用占位符代替 SQL 语句中实际值的技术。在 PHP 中,我们可以使用 PDO 或 MySQLi 扩展来实现参数化查询。下面是一个使用 PDO 扩展和参数化查询的示例代码:
<?php
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT * FROM users WHERE age=:age");
$stmt->bindParam(':age', $age);
$age = 25;
$stmt->execute();
// 输出数据
while($row = $stmt->fetch()) {
echo "id: " . $row["id"]. " - 姓名: " . $row["name"]. " - 年龄: " . $row["age"]. "<br>";
}
}
catch(PDOException $e) {
echo "错误: " . $e->getMessage();
}
$conn = null;
?>
准备好的语句是一种使用问号代替 SQL 语句中实际值的技术。在 PHP 中,我们可以使用 MySQLi 扩展来实现准备好的语句。下面是一个使用 MySQLi 扩展和准备好的语句的示例代码:
<?php
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
$stmt = $conn->prepare("SELECT * FROM users WHERE age=?");
$stmt->bind_param("i", $age);
$age = 25;
$stmt->execute();
$result = $stmt->get_result();
// 输出数据
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - 姓名: " . $row["name"]. " - 年龄: " . $row["age"]. "<br>";
}
} else {
echo "没有数据";
}
$stmt->close();
$conn->close();
?>
在 PHP 中查询 SQL 是一项基本操作,本文中我们介绍了如何连接到数据库,执行 SQL 查询以及如何防止 SQL 注入。对于经常需要与数据库进行交互的 PHP 程序员来说,这些技术是非常重要的。