2016-04-24 137 views
-1

這可能是個愚蠢的問題,但我解決不了。「準備」PDO功能錯誤

我有PDO連接(bdd.php)

<?php 
    $dbserver="localhost"; 
    $dbuser="root"; 
    $dbpass=""; 
    $dbname="calendar"; 

    $db = new PDO(
    "mysql:host=$dbserver;dbname=$dbname;" ,"$dbuser","$dbpass", 
    array(
     PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8", 
     PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET utf8" 
    ) 
); 
?> 

但我收到此錯誤:

Fatal error: Call to a member function prepare() on a non-object on Index.php on row 6

這裏是我的 「的index.php」:

<?php 
require_once('bdd.php'); 

$sql = "SELECT id, title, start, end, color FROM events "; 

$req = $bdd->prepare($sql); 
$req->execute(); 

$events = $req->fetchAll(); 

?> 

<!DOCTYPE html> 
<html lang="en"> 

<head> 

    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <meta name="description" content=""> 
    <meta name="author" content=""> 

。 ....(繼續是普通的HTML/PHP/JS內容,不重要)

+1

哪裏'$ bdd'從何而來? – JimL

+0

錯誤報告會幫助你。 –

回答

3

看起來像$req = $bdd->prepare($sql);是您的問題來自何處。

Inside bdd.php您正在將數據庫連接分配到$db

簡單地改變它們中的任何一個,使它們相同。

因此,要麼:

$bdd = new PDO(

或者:

$req = $db->prepare($sql); 
+0

沒問題,請將此標記爲答案:) –

+0

是的,只需等待4分鐘,它就會有某種冷卻:) –

2

你連接的變量$分貝,而不是$ BDD