【发布时间】:2023-04-02 07:45:01
【问题描述】:
SELECT name FROM customers WHERE location = ? AND active = '1'
在此查询中,location 的值将来自不受信任的来源,但 active 的值将始终为 = 1。我正在使用 PDO用于 php/mysql。
我还应该参数化 active 的值吗?
如果 active 不是常数而是来自不断变化和受信任的来源,我还应该参数化吗?(即,为了缓存的好处?)
【问题讨论】:
-
规则是:每当你将用户数据与查询混合时,使用参数化查询
-
基于代码可读性/理解力的意见:如果其常量,则将其硬编码到 sql 中。赋予它变化的灵活性会让代码的读者想知道为什么/在哪里改变值。但是当硬编码时,一眼就可以说“啊,这个查询获得了所有活跃用户”
标签: php mysql pdo prepared-statement parameterized-query