php – bindValue()和bindParam()之间的混淆?
发布时间:2020-12-13 14:06:28 所属栏目:PHP教程 来源:网络整理
导读:我在这两个函数之间混淆Bindvalue()和BindParam() 我在php.net上读取它不能逃脱%和_,所以在使用LIKE时要小心.所以我认为当我们使用LIKE查询时,BindValue()不被使用. 当我们使用LIKE查询时使用BindParam().因为我知道BindParam可以逃脱这些%和_. BindValue(
我在这两个函数之间混淆Bindvalue()和BindParam()
>我在php.net上读取它不能逃脱%和_,所以在使用LIKE时要小心.所以我认为当我们使用LIKE查询时,BindValue()不被使用. 朋友告诉我在这3点中提到的是对还是错.
价值观如何逃脱或不被逃脱应该没有区别. bindParam与bindValue不同,因为它引用该变量,仅在执行该语句时绑定该值. bindValue立即取值.为了显示:
$stmt = $db->prepare('SELECT * FROM `table` WHERE foo = :foo'); $foo = 'foo'; $stmt->bindValue(':foo',$foo); $foo = 'bar'; $stmt->execute(); 以上执行像SELECT * FROM table WHERE foo =’foo’; $stmt = $db->prepare('SELECT * FROM `table` WHERE foo = :foo'); $foo = 'foo'; $stmt->bindParam(':foo',$foo); $foo = 'bar'; $stmt->execute() 以上执行像SELECT * FROM table WHERE foo =’bar’. 这是真的,既不关心_或%作为特殊字符,因为一般来说,它们不是特殊字符,就语法而言,数据库驱动程序无法分析上下文,以确定您是否意味着%一个通配符或实际字符“%”在LIKE查询的上下文中. 两者都可以防止SQL注入. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |