2014-10-23 1 views
0

MySQL PDO 쿼리에서 뭔가 이상한 일이 일어나고 있습니다.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

은 '이름 바꾸기를 시도? 강제로 교란을 일으킬 수있는 내장 함수'CURRENT_DATE()'가 있습니다! –

+0

오류가 없음을 어떻게 알 수 있습니까? 그들도 확인합니까? – zerkms

답변

0

PDO ERROR 000은 쿼리가 성공적으로 실행될 때 반환되는 값입니다.

실패 할 때만 인쇄해야합니다. 그렇지 않으면 무시해야합니다. 라인을 따라 귀하의 경우 뭔가에

는 : current_date`를 :

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()); 
} 
+0

안녕하세요, 2 레코드를 반환해야합니다. – Hugo

+0

@Hugo 그러면 가져올 필요가있는 코드 만 실행합니다. 업데이트를 참조하십시오. – meda

관련 문제