PHP中的MySQL引号转义函数主要是mysqli_real_escape_string()(针对mysqli扩展)和PDO::quote()(针对PDO扩展)。这些函数用于防止SQL注入攻击,通过转义特殊字符来确保用户输入的数据安全地插入到SQL查询中。
mysqli_real_escape_string():需要一个MySQL连接和一个字符串作为参数,返回转义后的字符串。PDO::quote():需要一个PDO数据库连接和一个字符串作为参数,返回一个包含引号的字符串,该字符串可以安全地用于SQL语句。mysqli_real_escape_string()<?php
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_error) {
die("连接失败: " . $mysqli->connect_error);
}
$userInput = $_POST['username'];
$escapedInput = $mysqli->real_escape_string($userInput);
$sql = "SELECT * FROM users WHERE username = '$escapedInput'";
$result = $mysqli->query($sql);
// 处理结果...
$mysqli->close();
?>PDO::quote()<?php
try {
$pdo = new PDO("mysql:host=localhost;dbname=database", "user", "password");
$userInput = $_POST['username'];
$quotedInput = $pdo->quote($userInput);
$sql = "SELECT * FROM users WHERE username = $quotedInput";
$stmt = $pdo->query($sql);
// 处理结果...
} catch (PDOException $e) {
echo "数据库连接失败: " . $e->getMessage();
}
?>mysqli_real_escape_string()或PDO::quote()没有生效?请注意,随着PHP版本的更新,一些函数和扩展可能已经过时或被新的方法取代。因此,建议查阅最新的PHP官方文档以获取最准确的信息。
没有搜到相关的问答