如何在正确的在php中使用mysql_real_escape_string函数

介绍

如何在正确的在php中使用mysql_real_escape_string函数?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

转义特殊字符在unescaped_string,考虑到当前字符的连接设置,以便它在的地方是安全的在mysql_query()它。如果二进制数据要插入,这个函数必须被使用

下列字符受影响:

<李>

\ x00

<李>

\ n

<李>

\ r

<李>

\

<李>

& # 39;

<李>

,

<李>

\ x1a

如果成功,则该函数返回被转义的字符串。如果失败,则返回错误的。

语法

 mysql_real_escape_string(字符串,连接)
参数描述字符串必需。规定要转义的字符串.connection可选。规定MySQL连接。如果未规定,则使用上一个连接。

说明

本函数将字符串中的特殊字符转义,并考虑到连接的当前字符集,因此可以安全用于mysql_query ()。

提示和注释

提示:可使用本函数来预防数据库攻击。

例子

例子1

代码如下:


& lt; ?php
$ con=mysql_connect (“localhost",“hello",“321“);
如果(! $ con)
,{
,死(& # 39;不能连接:& # 39;。mysql_error ());
,}

//获得用户名和密码的代码

//转义用户名和密码,以便在SQL中使用
$ user=mysql_real_escape_string(用户)美元;
$ pwd=mysql_real_escape_string ($ pwd);

$ SQL=按佑没抢?br/>用户选择*=& # 39;“。美元的用户。“& # 39;和密码=& # 39;“。$ pwd。“& # 39;“

//更多代码

mysql_close (con);
?在

例子2
数据库攻击。本例演示如果我们不对用户名和密码应用mysql_real_escape_string()函数会发生什么:

代码如下:


& lt; ?php
$ con=mysql_connect (“localhost",“hello",“321“);
如果(! $ con)
,{
,死(& # 39;不能连接:& # 39;。mysql_error ());
,}

$ sql=按佑没?br/>,用户选择*=& # 39;{$ _POST[& # 39;用户# 39;]}& # 39;
和密码=& # 39;{$ _POST [& # 39; pwd # 39;]} & # 39;“;
mysql_query ($ sql);

//不检查用户名和密码
//可以是用户输入的任何内容,比如:
$ _POST[& # 39;用户# 39;]=& # 39;约翰# 39;;
$ _POST [& # 39; pwd # 39;]=? # 39;或& # 39;& # 39;=& # 39;“;

//一些代码…

mysql_close (con);
?在

那么SQL查询会成为这样:

从用户
,用户选择*=& # 39;约翰# 39;和密码=& # 39;& # 39;或& # 39;& # 39;=& # 39;& # 39;这意味着任何用户无需输入合法的密码即可登陆。

例子3
预防数据库攻击的正确做法:

代码如下:


& lt; ?php
函数check_input(美元值)
{
//去除斜杠
如果(get_magic_quotes_gpc ())
,{
,(value=https://www.yisu.com/zixun/stripslashes美元值),
,}
//如果不是数字则加引号
如果(! is_numeric(值)美元)
,{
,美元价值=https://www.yisu.com/zixun/薄薄ysql_real_escape_string()美元值)。“‘”;
,}
返回美元价值;
}

反对美元=mysql_connect (“localhost",“hello",“321“);
如果(! $ con)
,{
,死(& # 39;不能连接:& # 39;。mysql_error ());
,}

//进行安全的SQL
$ user=check_input ($ _POST[& # 39;用户# 39;]);
$ pwd=check_input ($ _POST [& # 39; pwd # 39;]);
$ SQL=按佑没抢?br/>用户选择*=用户和密码=pwd"美元;;

mysql_query ($ SQL);

mysql_close (con);
?在

关于如何在正确的在php中使用mysql_real_escape_string函数问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

如何在正确的在php中使用mysql_real_escape_string函数