2013-08-30 56 views
-4

没过的var_dump - 返回object(PDO)#1 (0) { }PDO连接错误返回对象(PDO)#1(0){}

代码为我下面的数据库连接:

<?php 

$config['db'] = array 

    (

     'host'  => 'localhost', 
     'dbname' => 'journal', 
     'username' => 'root', 
     'password' => '' 


    ); 


     $dbc = new PDO('mysql:host=' . $config['db']['host'] . ';dbname=' . $config['db']['dbname'], $config['db']['username'], $config['db']['password']); 
     var_dump($dbc); 

?> 

当我尝试使用$ DBC变量返回以下错误:

Notice: Undefined variable: dbc in C:\xampp\htdocs\journal\data\functions.php on line 21

Fatal error: Call to a member function prepare() on a non-object in C:\xampp\htdocs\journal\data\functions.php on line 21

线21:

$appendEntries = $dbc->prepare("SELECT * FROM `entries`"); 
+2

'注意称之为:未定义variable'意味着变量'$ dbc'超出范围在你试图用它。 – roninblade

+1

http://stackoverflow.com/questions/16959576/reference-what-is-variable-scope-which-variables-are-accessible-from-where-and/16959577#16959577 – DCoder

+0

他们在同一个目录中,我有一个要求'db.php'; –

回答

2

我想象你的代码functions.php看起来像这样

require_once 'db.php'; 

function somethingSomethingEntries() { 
    $appendEntries = $dbc->prepare("SELECT * FROMentries"); 
} 

somethingSomethingEntries范围,$dbc不存在。你应该把它作为一个参数,如

function somethingSomethingEntries(PDO $dbc) { 
    $appendEntries = $dbc->prepare("SELECT * FROMentries"); 
} 

require_once 'db.php'; 

somethingSomethingEntries($dbc); 
+0

美丽的故障。帮我一吨! – ShiningLight