我写了这段代码
require('Database.class.php');
function get_info (){
$db = new Database($config['server'], $config['user'], $config['pass'], $config['database'], $config['tablePrefix']);
$db->connect();
$sql = $db->query('SELECT * FROM ja_cat');
while ($options = $db->fetch_array($sql)) {
$cat[].=" ".$options['title'];
}
$db->close();
return $cat;
然后我得到了这个Mysql错误
Mysql错误:未选择数据库。
但是当我把require指令放在函数中时,它可以正常工作
答案 0 :(得分:4)
我的猜测是Database.class.php创建了一些可能在全局范围内依赖的变量。如果你在函数内部需要它并且它有效,那就支持这个理论。那是你的班级吗?你能改变吗?你可以发布吗?
基本上$ config需要函数内部的全局限定符。
答案 1 :(得分:3)
将此设为第一行 IN 您的get_info()函数:
global $config;
此外,您可能希望在代码开头的函数外部定义$ db,然后在结束时关闭连接,而不是必须多次重新连接。
答案 2 :(得分:2)
您必须将全局变量$config
导入函数范围:
function get_info() {
global $config;
}