2014-01-28 84 views
0

在需要其他任何东西之前,我需要索引中的pdo_connect 在index.php中使用foreach(请参见下文),但是当我在功能“测试”(这是一个单独的文件),我得到的错误:在pdo中的非对象上调用成员函数query()

调用一个成员函数查询()一个非对象

已经尝试过在单独的文件requireing的pdo_connect以及这给同样的错误

我完全新的PDO和初学者编码器和会很感激,如果有人可以帮助我!

pdo_connect.php:

 $host= 'localhost'; 
     $dbname= 'secret'; 
     $user= 'secret'; 
     $pass= 'secret'; 
     $input = 'secret'; 

     try 
     { 
      $DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass); 
      $DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     } 
     catch(PDOException $e) 
     { 
      file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND); 
     } 

功能(testfile.php):

function test($UserName,$PassWord) 
{ 

    foreach($DBH->query('SELECT * FROM users') as $row) 
    { 
     echo $row['username'].' '.$row['password']; //etc... 
    } 
} 
+2

阅读有关[范围](http://php.net/manual/en/language.variables.scope.php):

尝试。 '$ DBH'不是内部'测试访问()' – kero

回答

1

你要通过你的$胸径为参数去测试功能,$胸径是不可见的内您测试功能。在PHP

function test($DBH,$UserName,$PassWord) 
{ 

    foreach($DBH->query('SELECT * FROM users') as $row) 
    { 
     echo $row['username'].' '.$row['password']; //etc... 
    } 
} 
+0

感谢这个伟大的工作!我一直很蠢,但嘿!你从那学习?我可能会记住我的余生,谢谢你帮忙配偶! – PrivateerGerrit

相关问题