如果我手动执行以下查询替换为值而不是:,它的工作但相同的查询如果通过php执行则不会返回任何内容...
$sql_check = $dbConnection->prepare("select sum(case when
upper(main_category)=upper(:main_category) and
upper(sub_category1)=upper(:sub_category1) then 1
when upper(main_category)=upper(:main_category) then 1 else 0 end) cnt from dbs.sales;");
$sql_check->execute(array(':main_category' => $main_category,':sub_category1' =>
$sub_category1,':sub_category2' => $sub_category2));
foreach ($sql_check as $row) {
$cnt=$row['cnt'];
echo "cnt ".$cnt."<br>"; //No rows returned upon execution
}//end of for loop
此处:main_category 正在使用两次
如果我不使用:main_category 两次,上面的查询工作正常......
如果要在查询中使用相同的参数化字段,请帮助我并告诉我如何运行查询?
答案 0 :(得分:2)
$dbConnection->setAttribute(PDO::ATTR_EMULATE_PREPARES, TRUE);
首先让它发挥作用
和
$dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
也很有用