2016-04-24 140 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