当我点击按钮时,会向我编写的API发出AJAX调用。当单击该按钮时,Javascript文件从单击对象中检索两个data
属性,并将其与URL一起发送。这两个变量将用于尚未执行的SQL语句的where子句中。
当进行调用时,处理API请求的PHP脚本通过Input::get('data-attribute-one'))
和Input::get('data-attribute-two'))
接收到这两个变量。当我输出这两个属性时,正确的值会显示。
然而,当我将这些变量放入查询的where子句中时,如下所示:
$fans = Sensor::where('fan_number', '=', $dataAttributeOne)->where('created_at', '>=', $this->now->subHours(6))->get();
未返回任何结果。因此,我用 ->toSql()
替换了 ->get()
以检查查询,然后它向我显示了这一行奇怪的代码:
Object {fans: "select * from "myawesomedatabasetable" where "fan_number" = ? and "created_at" >= ?"}
$dataAttributeOne
是获取的 data-atribute
,$this->now->subHours(6)
是当前时间减去 6 小时。当我输出这个变量时,它的格式与数据库中的 created_at
值相同,当我在 Phpmyadmin 中将其硬编码到 SQL 语句中时,查询能够成功执行。所以没有问题。
我的问题是:为什么变量在查询执行时变成了问号,我该如何解决这个问题?
提前感谢您的帮助!