PHPmysql_real_escape_string函数的用法和实例教程

在unescaped_string转义特殊字符,考虑到连接的当前角色的设定,这是在地方,它是安全的mysql_query()。如果二进制数据被插入的功能,必须使用



以下字符受到影响:

◎设备

R

'

x1a

如果函数成功,函数返回转义字符串。如果失败,返回false。

语法
mysql_real_escape_string(字符串连接)



参数
描述

字符串
这是必要的。

连接
可选。指定mysql连接。如果未指定,则使用最后一个连接。


解释

这个功能原来的字符串中的特殊字符,考虑设置连接的电流特性,所以它可以安全地用于mysql_query()。

提示和注释

提示:此函数可用于防止数据库攻击。

例子

例1

复制代码代码如下所示:
< PHP
对美元mysql_connect(localhost
如果(!$ CON)
{
死(不连接:'。mysql_error()));
}

获取用户名和密码代码

sql中使用的用户名和密码
用户= mysql_real_escape_string美元(美元户);
mysql_real_escape_string pwd=美元($ pwd);

从用户那里选择
用户。$和密码=。$pwd. ''

更多代码

mysql_close($ CON);
>


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

复制代码代码如下所示:
< PHP
对美元mysql_connect(localhost
如果(!$ CON)
{
死(不连接:'。mysql_error()));
}

从用户中选择*
其中用户={ } } {用户_post美元
和密码={ } { } _post美元'pwd ';
mysql_query($ SQL);

请不要检查用户名和密码。
可以输入用户输入的任何内容,例如:
_post美元{用户} =约翰;
_post美元{ 'pwd} = 或' = ';

代码…

mysql_close($ CON);
>


所以sql查询将是这样的:

从用户中选择*
其中用户= 'john'and密码=或= ''里面意味着任何用户输入不合法的登陆密码。

例3
防止数据库攻击的正确方法:

复制代码代码如下所示:
< PHP
功能check_input(价值)
{
删除/斜杠
如果(get_magic_quotes_gpc())
{
价值= stripslashes(价值);
}
如果不是引号的数目,则为
如果(!is_numeric(美元值))
{
价值= ,mysql_real_escape_string(价值)。;
}
返回值;
}

对美元mysql_connect(localhost
如果(!$ CON)
{
死(不连接:'。mysql_error()));
}

安全
用户名= check_input($ _post {用户});
$ pwd = check_input($ _post { 'pwd});
从用户那里选择
用户的用户和密码= =美元美元的密码;

mysql_query($ SQL);

mysql_close($ CON);
>