我在global.php文件中声明了以下函数:
function dbconnect(){
$mysqli = new mysqli($dbserver,$dbuser,$dbpasswd,$dbdatabase);
if ($mysqli->connect_error){
echo ($mysqli->connect_error);
return null;
} else {
return $mysqli;
}
}
我已100%确定$ dbdatabase是一个有效的数据库。我调用函数我得到一个有效的对象,没有错误;但是,当我尝试执行查询时,该对象报告未选择任何数据库。如果我删除代码并直接在我需要的地方执行它 - 没有问题。我错过了什么吗?谢谢!
答案 0 :(得分:1)
值$dbserver
$dbuser
$dbpasswd
和$dbdatabase
未在函数范围内定义。
您应该通过以下参数传递它们:
function dbconnect($dbserver, $dbuser, $dbpasswd, $dbdatabase){
或者你可以使用糟糕的编码方法并通过这样做来全局化变量:
function dbconnect(){
global $dbserver, $dbuser, $dbpasswd, $dbdatabase;
我建议使用第一种方法,或者只是在函数中定义变量。
答案 1 :(得分:0)
实际上还有另一种方式。你不需要让所有这些全局化。而不是你可以在本地制作它们。
像...
function dbConnect(){
$server = "localhost";
$username = "root";
$password = "";
$dbname = "test";
$con = new mysqli($server,$username,$password,$dbname);
return $con ;
}