Php/func mysqli real escape string
来自菜鸟教程
PHP mysqli real_escape_string()函数
示例-面向对象的样式
转义字符串中的特殊字符:
<?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();
}
// Escape special characters, if any
$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();
?>
在底部查看程序样式的示例。
定义和用法
考虑到连接的当前字符集,real_escape_string()/ mysqli_real_escape_string()函数转义字符串中的特殊字符以用于SQL查询。
此函数用于创建可在SQL语句中使用的合法SQL字符串。假设我们有以下代码:
<?php
$lastname = "D'Ore";
$sql="INSERT INTO Persons (LastName) VALUES ('$lastname')";
// This query will fail, cause we didn't escape $lastname
if (!$mysqli -> query($sql)) {
printf("%d Row inserted.\n", $mysqli->affected_rows);
}
?>
句法
面向对象的样式:
$mysqli -> real_escape_string(escapestring)
程序风格:
mysqli_real_escape_string(connection, escapestring)
参数值
| 参数 | 描述 |
|---|---|
| connection | 需要。指定要使用的MySQL连接 |
| escapestring | 需要。要转义的字符串。编码的字符为NUL(ASCII 0),\ n,\ r,\,',“和Control-Z。 |
技术细节
| 返回值: | 返回转义的字符串 |
| PHP版本: | 5+ |
示例-程序风格
转义字符串中的特殊字符:
<?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();
}
// Escape special characters, if any
$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);
?>