UCHome: 转义mysql_escape_string()

在查询数据库时,很多时候我们会在查询的条件中包含反斜线(/),双引号("),单引号(')。这三种符号在SQL语句中通常都有着特殊的含义,不能直接使用。

mysql_escape_string()可以帮我们解决这个问题。

假设这样一个例子:客户端有一个HTML表单,表单里面有一个input输入框,名称为item。当使用者在item输入框输入如下内容:Zak's Laptop,然后点击提交按钮。服务端在收到这个请求时该如何处理呢?

不正确的处理方式:

<?php
$item = $_REQUEST[‘item’];
$sql_query = "SELECT * FROM admin_items WHERE item_name = '$item'";
printf ("SQL: %s\n", $sql_query);
?> 

输出结果:

SQL: SELECT * FROM admin_items WHERE item_name = 'Zak's Laptop' 

从结果可以看书,输出的SQL很明显就是错误的。正确的处理方式:

<?php
$item = mysql_escape_string($_REQUEST[‘item’]);
$sql_query = "SELECT * FROM admin_items WHERE item_name = '$item'";
printf ("SQL: %s\n", $sql_query);
?>

输出结果:

SQL: SELECT * FROM admin_items WHERE item_name = 'Zak\'s Laptop' 

可以看出,mysql_escape_string()函数为$item里面的单引号在前面加了一个转义反斜线字符。

原文地址:https://www.cnblogs.com/eastson/p/2837896.html