gpt4 book ai didi

php - 使用 PDO 中静态变量的表名

转载 作者:行者123 更新时间:2023-11-29 20:57:40 25 4
gpt4 key购买 nike

我知道,PDO 不允许我在表上使用“参数系统”。我的问题是,我将所有表名称作为变量/静态变量存储在名为“Tables”的对象中(这样我就可以集中更新表名称)。

我只是找不到问题的答案,如果使用静态变量构建查询是一个好主意/不错的做法(用户无法更改表名称/浏览表,所以这不应该是一个安全问题)

示例:

$statement = $this->pdo->prepare('SELECT `category-id`, `icon`, `name` FROM ' . Tables::$BOARD_CATEGORIES);

我可以使用这种技术,还是应该坚持使用正常的“静态”方式?谢谢:)

最佳答案

参数化预准备语句的主要安全优势在于,它可以防止在数据库解析语句之前将来自不可信来源的字符串插入 SQL 语句中;解析和准备语句后,只允许值替换,不允许可执行子句。

您可以将原始 SQL 查询视为“来自可靠来源的字符串”。如果它提高了可维护性,我认为没有理由从较小的字符串构建查询,前提是所有这些字符串也来自可靠的来源,例如您的 Tables 类。 (不过,我确实想知道您希望重命名表的频率。)

我不准备说它是不是“最佳实践”,但当我与伟大的蔚蓝帝国(一家真正公司的假名)合作时,我确实在行业中看到了类似的情况,并且我认为即使是“最佳实践”也不应该被视为教条。

关于php - 使用 PDO 中静态变量的表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37503856/

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