MySQL数据库对sql查询语句加转义addslashes后语法出现问题-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

MySQL数据库对sql查询语句加转义addslashes后语法出现问题

用户名是admin,密码是admin。
查询语句是:$sql="select * from table_project where a_username='{$username}' and a_password='{$password}';";然后查询:$res=mysql_query($sql);·······
因为防止sql注入,所以想在sql语句查询之前都进行一下转义,所以用addslashes对$sql语句转义了一下,但是就出错了。
4
没有加转义的那一行代码前,用admin,admin可以顺利登录。
加了之后,用admin,admin登录后,捕捉了如下错误
5

展开
收起
蛮大人123 2016-02-10 13:03:35 2731 0
1 条回答
写回答
取消 提交回答
  • 蛮大人123
    我说我不帅他们就打我,还说我虚伪

    用PDO.mysqli也行。
    全选复制放进笔记$db = new PDO('mysql:host=127.0.0.1;dbname=test;charset=utf8','root','rootpass');
    $stm = $db->prepare("select * from test where field = :value");
    $stm->bindValue(':value',$_GET['field'],PDO::PARAM_STR);
    $stm->execute();
    $rows = $stm->fetchAll(PDO::FETCH_ASSOC);
    var_dump($rows);

    2019-07-17 18:40:19
    赞同 展开评论 打赏
问答排行榜
最热
最新
相关电子书
更多
让 MySQL 原生分布式触手可及
立即下载
好的 MySQL 兼容可以做到什么程度
立即下载
云数据库RDS MySQL从入门到高阶
立即下载