2012-04-17 2 views
0

치명적 오류 : /home/content/69/9179269/html/test/json-events.php 11 번째 줄의 객체가 아닌 객체의 fetchAll() 멤버 함수를 호출하십시오.가져 오기 후 인코딩 json을 실행할 때 오류가 발생합니다.

$result = $dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC);

이 오류의 원인은 무엇입니까?

`$username = "user"; 
$password = "psword"; 

$dbh = new PDO("mysql:localhost;dbname=databasename", $username, $password); 

$sql = "SELECT `id`, `title`, `time`, `start`, `end`, `url`, `backgroundColor`, `textColor`, `borderColor`, `description` 
    FROM calender WHERE length(column) > 0";` 


foreach ($result as $row){ 
$return[]=array('id'=>$row['id'], 
       'title'=>$row['title'], 
       'start'=>$row['start'].' '.$row['time'], 
       'end'=>$row['end'], 
       'url'=>$row['url'], 
       'backgroundColor'=>$row['backgroundColor'], 
       'textColor'=>$row['textColor'], 
       'borderColor'=>$row['borderColor'], 
       'description'=>$row['description'], 
       "allDay" => false); 
} 
$dbh = null; 

header('Content-type: application/json'); 
echo json_encode($return); 
+0

$ sql을 별도로 echo 한 후 phpMyAdmin 또는 MySQL 명령 행을 통해 실행하십시오. $ dbh-> query()는 false를 리턴 할 것이므로 fetchAll은 실패 할 것이다. http://www.php.net/manual/en/pdo.query.php를 참조하십시오. PDO :: query()는 PDOStatement 객체를 반환하고 실패하면 FALSE를 반환합니다. –

+0

더 많은 코드를 보여줘야합니다. –

+0

모든 PHP 코드가 업데이트되었습니다. –

답변

1

query()가 pdo 문을 반환하지 않습니다. 즉, 쿼리가 실패했을 수 있습니다. SQL 문과 오류 메시지를 확인하십시오.

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);

와 오류보고에

전원을 켜고 그래서 당신은 당신의 오류 메시지를 볼 수 있습니다.

+0

'열'을 추가하면 작동합니다. –

관련 문제