【发布时间】:2019-12-19 10:49:49
【问题描述】:
我准备我的数据库请求以防止使用扩展名 Mysqlnd 进行 SQL 注入。 像这样的请求在我的网站上工作:
SELECT a, b FROM table where a = ?;
下一个请求在我的网站上不起作用:
SELECT a, b FROM table where b > DATE_SUB(CURRENT_TIMESTAMP(),INTERVAL ? ?);
错误日志:PHP 致命错误:在...中的非对象上调用成员函数 execute() 这是因为请求的语法错误。
当我在我的 DB IDE 中尝试它时,双问号算作 1 而不是 2 个参数。
我该如何解决这个问题?
【问题讨论】:
-
我没有测试过,但我假设你不能参数化查询的 DAY/WEEK/... 部分
-
@NigelRen 没有真正的帮助,因为我想用我的参数进行选择,如果它是 MONTH/DAY/HOUR/...