MySqli对象 - >查询不在特定的php文件中工作

时间:2014-11-08 21:07:42

标签: php mysqli

我有一个单独的文件,其中包含一个实例化的mysqli对象,该对象位于名为includes的名为root的文件夹中,名为connect.php

$db = new mysqli($host, $user, $password, $dbname);

if ($db -> connect_errno) {
    echo $db -> connect_error;
}

我的第一页有一个require,并使用对象$db执行一项效果很好的real_escape_string任务。我在functions.php文件夹中也有一个includes。其中有一个名为sendToDB的函数,它使用query函数。 functions.php还包含require函数。但是,我收到消息:

致命错误:在非对象上调用成员函数query()...

如果我在函数sendToDB中实例化对象,它就会成功写入数据库。我一拿出来就收到同样的消息。这是一个全球问题吗?或者我最好在我需要的地方实例化它?另外,如果在多个页面上使用$db,在每页完成后运行$db->close();是否安全?

1 个答案:

答案 0 :(得分:1)

在使用数据库对象(例如sendToDB)的函数的开头,确保你已经有了这一行:

global $db;

通常需要在函数内部使用全局变量。