我有一个单独的文件,其中包含一个实例化的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();
是否安全?
答案 0 :(得分:1)
在使用数据库对象(例如sendToDB)的函数的开头,确保你已经有了这一行:
global $db;
通常需要在函数内部使用全局变量。