在pdo中的非对象上调用成员函数query()

时间:2014-01-28 11:53:25

标签: php mysql pdo

在需要任何其他内容之前,我需要索引中的pdo_connect 在index.php中使用foreach(见下文)有效,但当我在函数'test'(这是一个单独的文件)中使用它时,我收到错误:

在非对象

上调用成员函数query()

已尝试在单独的文件中同时要求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...
    }
}

1 个答案:

答案 0 :(得分:1)

您必须将$ DBH作为参数传递给测试函数,在测试函数中看不到$ DBH。

尝试:

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

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