在需要任何其他内容之前,我需要索引中的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...
}
}
答案 0 :(得分:1)
您必须将$ DBH作为参数传递给测试函数,在测试函数中看不到$ DBH。
尝试:
function test($DBH,$UserName,$PassWord)
{
foreach($DBH->query('SELECT * FROM users') as $row)
{
echo $row['username'].' '.$row['password']; //etc...
}
}