我有以下代码:
db.php中
$dbhost = "localhost";
$dbname = "database";
$dbuser = "admin";
$dbpass = "12345";
global $db;
$db = new mysqli();
$db->connect($dbhost, $dbuser, $dbpass, $dbname);
$db->set_charset("utf8");
随机file.php
require_once 'db.php';
doSomething($db, $value1, $value2);
正如您所看到的,我正在尝试将random-file.php中的$ db变量作为参数传递。这个$ db变量在db.php中定义。
这一切都适用于PHP 5.4.34,我完全没有问题。但是:如果我使用PHP 5.6.3运行此代码,则会收到以下错误消息:
Notice: Undefined variable: db
我的代码设置有什么问题?我怎样才能实现我的代码与PHP 5.4和5.6同时工作?
答案 0 :(得分:1)
您使用的全局变量不是必需的。您应该选择在此方案中传递参数。
function db_conn($dbhost, $dbname, $dbuser, $dbpass) {
$db = new mysqli();
$db->connect($dbhost, $dbuser, $dbpass, $dbname);
$db->set_charset("utf8");
return $db;
}
$db_handle = db_conn("localhost", "database", "admin", "12345");
doSomething($db_handle, $value1, $value2);
您将所有数据库详细信息直接传递给函数,然后该函数返回您在文件中使用的句柄。