我有简单的SQL查询,可以从绑定变量中受益,所以我写的是这样的:
$stmt = $this->db->prepare("SELECT * FROM activities WHERE user_id=':user_id' AND date(start_time)=date(':on_specific_day')");
$stmt->bindParam(':user_id',$where['user_id']);
$stmt->bindParam(':on_specific_day',$where['on_specific_day']);
正如您所看到的,有一个名为where
的关联数组,用于存储我的where条件。当我执行此语句时,它不会返回任何错误,但行计数为零。如果我放弃使用绑定变量的梦想并执行此操作:
$stmt = $this->db->prepare("SELECT * FROM activities WHERE user_id='{$where['user_id']}' AND date(start_time)=date('{$where['on_specific_day']}')");
查询运行正常并在我的测试用例中返回2个结果。有人可以帮我摆脱疯狂。 :^)
答案 0 :(得分:3)
您无需用引号标记PDO parameters
:
$stmt = $this->db->prepare("SELECT * FROM activities WHERE user_id=:user_id AND date(start_time)=date(:on_specific_day)