绑定方法跟直接在execute括号里传参有什么区别

来源:3-3 [PDO] bindParam()方法绑定参数

白曰梦想家

2017-04-26 15:25

请问绑定这种方法跟直接在execute方法的括号里传参给占位符有什么区别? $res = $stmt->execute(array('用户名','密码','邮箱')); 仅仅是因为绑定可以设置数据类型吗? 绑定方法太繁琐了

写回答 关注

3回答

  • hen_nam
    2019-03-11 01:00:41

    execute() 传参或 bindValue() 是绑定常量到参数;bindParam() 是绑定变量到参数。

    相比之下,绑定变量更加灵活。

  • 白曰梦想家
    2017-04-26 22:12:38

    $res = $stmt->execute(array('用户名','密码','邮箱'));    也是可以防止SQL注入的,  我用的是execute方法哟,不是exec方法,我是给占位符分配数据过去,用的预处理

  • 慕工程1150624
    2017-04-26 18:22:05

    绑定参数可以防止sql注入。什么是sql注入?如果你的sql是这样"select * from tb_user where user_name = ?"  当你不用绑定参数,而是选择直接传参,你本来预期的参数比如是zhangsan,用户通过输入框输入的,即(select * from tb_user where user_name= 'zhangsan'),但对方输入了'zhangsan or 1=1',你的sql就变成了 select * from tb_user where user_name = 'zhangsan',结果要么所有用户信息泄露,要么你的服务器死机,知道危害了吧

PDO—数据库抽象层

本教程主要通过实战演练深入剖析PDO以加深理解

30036 学习 · 396 问题

查看课程

相似问题