致命的なエラー:/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);
別々の$ SQLをエコーし、phpMyAdminのかMySQLのコマンドラインを通してそれを実行してみてください。 $ dbh-> query()はfalseを返すので、fetchAllは失敗します。 http://www.php.net/manual/en/pdo.query.phpを参照してください。PDO :: query()はPDOStatementオブジェクトを返します。失敗した場合はFALSEを返します。 –
もっとコードを表示する必要があります。 –
すべてのPHPコードを更新しました。 –