gpt4 book ai didi

php - PDO::ATTR_EMULATE_PREPARES => 假

转载 作者:可可西里 更新时间:2023-10-31 23:51:21 25 4
gpt4 key购买 nike

我是 php 和 PDO 的新手,所以我阅读了对类似帖子的回复->

Does PDO really not use prepared statements with mysql? Yes, by default (at least with version I tested) but native mode can be turned on manually. If not, can it be forced to do so By employing PDO::ATTR_EMULATE_PREPARES setting, the name is pretty self-explanatory. $dbh->setAttribute( PDO::ATTR_EMULATE_PREPARES, false ); should you do that? That's hardest question of them all. Well, I'd say - yes, you should. If you choose PDO as your db driver, there is no point in using it in the emulation mode.
Your Common sense

准备好的语句不是可以防止 SQL 注入(inject)的吗?如果从“true”->false 进行更改,为什么要更改?什么是原生模式??

最佳答案

从那以后我改变了主意。

首先,每种模式都同样安全。
使准备好的语句安全的不是 native 绑定(bind),而是参数化语句的一般原则,它完成格式化,从而产生无懈可击的查询。

因此,我宁愿保持模拟模式开启,因为它对普通网络使用更有意义,并允许一些小的便利,例如更明智的错误消息(在查询中实际替换数据)或具有相同名称的多个占位符。

从仿真模式更改为 native 模式的唯一原因是准备语句的另一个好处 - 可以多次执行一次准备语句。但是,如上所述,它很少需要。

关于php - PDO::ATTR_EMULATE_PREPARES => 假,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19735856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com