我的MySQL PDO查询正在进行一些时髦的事情。
如果我传入一个值数组,则不会。 如果我没有通过数组,那就可以了。
我知道这是因为我得到了一个PDO错误0000,但是当我跑的时候 $ num_events_months = $ result_events_months-> rowCount();
如果值被硬编码到查询中,它只返回一个值。
我只是不确定我做错了什么?
以下不起作用:
$query_events_months = "SELECT DATE_FORMAT(event_date, '%Y-%m') AS event_month_year, DATE_FORMAT(event_date, '%M') AS event_month_name FROM Events WHERE event_date >= :current_date AND status = :status GROUP BY event_month_year";
$result_events_months = $conn->prepare($query_events_months);
$result_events_months->execute(array(':current_date'=>'2014-10-01',':status'=>'published'));
以下内容有效:
$query_events_months = "SELECT DATE_FORMAT(event_date, '%Y-%m') AS event_month_year, DATE_FORMAT(event_date, '%M') AS event_month_name FROM Events WHERE event_date >= '2014-10-01' AND status = 'published' GROUP BY event_month_year";
$result_events_months = $conn->prepare($query_events_months);
$result_events_months->execute(array(':current_date'=>'2014-10-01',
':status'=>'published'));
我只是不确定我做错了什么?
答案 0 :(得分:0)
PDO ERROR 000
是查询成功执行时返回的值。
你应该只在失败时打印,否则你应该忽略。
在你的情况下,有些东西:
if(!$result_events_months->execute(array(...))){
var_dump($result_events_months->errorInfo()); //not outside of the failure block
}else{
var_dump($result_events_months->fetchAll());
}