mysql_query
是 PHP 中用于执行 MySQL 数据库查询的函数。然而,需要注意的是,从 PHP 5.5.0 起,mysql_query
函数已被废弃,并在 PHP 7.0.0 中被移除。建议使用 MySQLi 或 PDO 扩展来与 MySQL 数据库进行交互。
mysql_query
函数提供了一个简单的接口来执行 SQL 查询。mysql_query
可以快速开始数据库操作。mysql_query
已被废弃原因: PHP 社区为了提高代码的安全性和可维护性,决定移除 mysql_query
函数。
解决方法: 使用 MySQLi 或 PDO 扩展来替代 `mysql。以下是一个使用 MySQLi 的示例:
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 执行查询
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 输出数据
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 结果";
}
$conn->close();
原因: mysql_query
函数直接将用户输入拼接到 SQL 查询中,容易导致 SQL 注入攻击。
解决方法: 使用预处理语句来防止 SQL 注入。以下是一个使用 MySQLi 预处理语句的示例:
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 准备 SQL 语句
$stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests WHERE firstname=? AND lastname=?");
$stmt->bind_param("ss", $firstname, $lastname);
// 设置参数并执行
$firstname = "John";
$lastname = "Doe";
$stmt->execute();
// 绑定结果变量
$stmt->bind_result($id, $firstname, $lastname);
// 获取结果并输出
while ($stmt->fetch()) {
echo "id: " . $id . " - Name: " . $firstname . " " . $lastname . "<br>";
}
$stmt->close();
$conn->close();
请注意,以上示例代码仅供参考,实际应用中可能需要根据具体需求进行调整。
领取专属 10元无门槛券
手把手带您无忧上云