real_escape_string
转义字符串中的特殊字符以用于 SQL 语句。
real_escape_string()
/ mysqli_real_escape_string()
函数转义字符串中的特殊字符,以便在 SQL 查询中使用,同时考虑连接的当前字符集。
此函数用于创建可在 SQL 语句中使用的合法 SQL 字符串。假设我们有以下代码:
<?php $lastname = "D'Ore"; $sql="INSERT INTO Persons (LastName) VALUES ('$lastname')"; // 此查询将失败,因为我们没有转义 $lastname if (!$mysqli -> query($sql)) { printf("%d Row inserted.\n", $mysqli->affected_rows); } ?>
转义字符串中的特殊字符:
<?php $mysqli = new mysqli("localhost","my_user","my_password","my_db"); if ($mysqli -> connect_errno) { echo "Failed to connect to MySQL: " . $mysqli -> connect_error; exit(); } // 转义特殊字符(如果有) $firstname = $mysqli -> real_escape_string($_POST['firstname']); $lastname = $mysqli -> real_escape_string($_POST['lastname']); $age = $mysqli -> real_escape_string($_POST['age']); $sql="INSERT INTO Persons (FirstName, LastName, Age) VALUES ('$firstname', '$lastname', '$age')"; if (!$mysqli -> query($sql)) { printf("%d Row inserted.\n", $mysqli->affected_rows); } $mysqli -> close(); ?>
转义字符串中的特殊字符:
<?php $con = mysqli_connect("localhost","my_user","my_password","my_db"); if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); exit(); } // 转义特殊字符(如果有) $firstname = mysqli_real_escape_string($con, $_POST['firstname']); $lastname = mysqli_real_escape_string($con, $_POST['lastname']); $age = mysqli_real_escape_string($con, $_POST['age']); $sql="INSERT INTO Persons (FirstName, LastName, Age) VALUES ('$firstname', '$lastname', '$age')"; if (!mysqli_query($con, $sql)) { printf("%d Row inserted.\n", mysqli_affected_rows($con)); } mysqli_close($con); ?>