2015-03-13 53 views
-1

有我的查询字符串,有没有关于bindParam的任何问题?Mysql查询选项参数

$str = "select A.option_id,count(*) as sum 
      from tb_feedback A,tb_question B,tb_group C 
      where (A.question_id=B.id) 
      and (:question is null or B.id=:question) 
      and (B.group_num=C.id) 
      and (:group is null or C.name=:group) 
      and (:fromdate is null or A.date >= CAST(:fromdate AS DATE)) 
      and (:todate is null or A.date <= CAST(:todate AS DATE)) 
      group by A.option_id"; 
     $sql = $this->conn->prepare($str); 
     $sql->bindParam(':question', $obj['question']); 
     $sql->bindParam(':group', $obj['group']); 
     $sql->bindParam(':fromdate', $obj['fromdate']); 
     $sql->bindParam(':todate', $obj['todate']); 
+1

优良似乎它没有成功,为什么ü问? – Borik 2015-03-13 17:21:59

+1

你为什么觉得有问题?你有错误吗? – Mureinik 2015-03-13 17:31:33

+0

@Mureinik耶,看起来不错,但运行我的程序,它返回null,实际上有一些记录存在于我的dasebase – 2015-03-13 17:37:47

回答

0

我发现,参数的类型不为空,它是字符串的原因,所以当执行下一条语句 (:question is null or B.id=:question)

+0

如果您认为自己的答案是正确的,请考虑给自己一个绿色复选标记。 – 2016-05-19 02:50:17