【发布时间】:2015-01-07 15:50:59
【问题描述】:
我有一个 func.php 文件,其中包含一个获取用户详细信息的函数:
require_once 'connection.php';
function getUI($username){
$query = "SELECT * FROM usernames WHERE username = ?";
$sth = $pdo->prepare($query);
$sth->bindValue(1, $username);
$sth->execute();
$result = $sth->fetch(PDO::FETCH_ASSOC);
return $result;
}
在我的connection.php中我有:
require_once 'details.php';
$pdo = new PDO("mysql:host=" . $dabhost . "; dbname=" . $dabname ."", $dabusern, $dabpassw);
在 details.php 中我有:
$dabhost = "localhost";
$dabname = "dab1";
$dabusern = "root";
$dabpassw = "root";
最终,我的 userdetails.php 包含一堆 HTML 代码,并显示函数 getUI() 将返回的结果。我在开头需要func.php:
require_once 'folder1/func.php';
我的目录如下所示:
rootfolder/userdetails.php
rootfolder/folder1/details.php
rootfolder/folder1/connection.php
rootfolder/folder1/func.php
问题是,当我打开 userdetails.php 时,我的 php_error.log 文件中出现错误,内容如下:
PHP Notice: Undefined variable: pdo in /rootfolder/folder1/func.php on line 58
PHP Fatal error: Call to a member function prepare() on null in /rootfolder/folder1/func.php on line 58
如果我只是将所有代码放在我的 userdetails.php 的顶部,它会起作用并带来预期的结果。因此,我如何要求我认为的变量的文件/范围有问题......
有人可以向我解释我做错了什么吗?
非常感谢您的帮助!
非常感谢!
更新:
将我的 $pdo 连接作为函数中的第二个参数传递解决了我的问题,但现在我无法从返回的 $return 变量中检索 x 结果,例如:
回显 $result['date'];
它说变量 $result 没有定义。知道为什么会这样吗?
再次感谢!
【问题讨论】:
标签: php mysql pdo include require-once