加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php mysql_real_escape_string构建安全的SQL语句

发布时间:2020-05-25 01:55:38 所属栏目:PHP 来源:互联网
导读:php mysql_real_escape_string函数用于转义sql语句中的特殊字符,从而避免SQL注入攻击,本文章向大家介绍php使用mysql_real_escape_string函数构建安全的SQL语句,需要的朋友可以参考一下。

mysql_real_escape_string介绍

mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符。如果成功,则该函数返回被转义的字符串。如果失败,则返回 false。

mysql_real_escape_string 优于addslashes。因为 mysql_real_escape_string考虑到字符集的问题因此可以安全用于mysql_query()。另外需要注意的是mysql_real_escape_string()不能转义%及_,只能转义一下字符:

x00

n

r

'

"

x1a

注意:有些时候需要将mysql_real_escape_string与mysql_set_charset一起使用。

mysql_real_escape_string语法及参数

语法:

mysql_real_escape_string(sql_str,con)

参数:

参数

描述

sql_str

必需。需要转义的SQL语句

con

可选。mysql连接标识符,如果没有设置该参数,则直接使用上一个mysql连接标识符

mysql_real_escape_string构建安全的SQL语句

本实例介绍了使用mysql_real_escape_string函数处理表单提交过来的数据,从而构建一个安全的SQL语句,避免了SQL注入攻击。

function opendatabase ($host,$user,$pass) {

try {

if ($db = mysql_connect ($host,$pass)){

return $db;

} else {

throw new exception ("Sorry,could not connect to mysql.");

}

} catch (exception $e) {

echo $e->getmessage ();

}

}

/* http://www.manongjc.com/article/1241.html */

function selectdb ($whichdb,$db){

try {

if (!mysql_select_db ($whichdb,$db)){

throw new exception ("Sorry,database could not be opened.");

}

} catch (exception $e) {

echo $e->getmessage();

}

}

function closedatabase ($db){

mysql_close ($db);

}

$db = opendatabase ("localhost","root","");

selectdb ("mydatabase",$db);

$_POST['user'] = "myname";

$_POST['pass'] = "mypassword";

function validatelogin ($user,$pass){

mysql_real_escape_string ($user);

mysql_real_escape_string ($pass);

$thequery = "SELECT * FROM userlogin WHERE username='$user' AND password='$pass'";

if ($aquery = mysql_query ($thequery)){

if (mysql_num_rows ($aquery) > 0){

return true;

} else {

return false;

}

} else {

echo mysql_error();

}

}

if (validatelogin ($_POST['user'],$_POST['pass'])){

echo "You have successfully logged in.";

} else {

echo "Sorry,you have an incorrect username and/or password.";

}

closedatabase ($db);

?>

mysql_real_escape_string()函数在本实例的主要作用:

防止SQL Injection攻击,也就是你必须验证用户的输入

操作数据的时候避免不必要的字符导致错误

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读