Php 函数返回数据库连接在包含在其他文件中时不起作用


Php function return database connection doesn't work when included in other files

我想要的是用数据库连接创建一个文件,并通过函数返回它,这样我就可以在其他文件中调用它,但我不断得到未定义的函数或未定义的变量.. 这是我的代码

function db()
{
    $host = "text";
    $user = "text";
    $password = "text";
    $database = "text";
    $db = mysqli_connect($host, $user, $password, $database);
    if(!$db)
    {
        die('OOOPS'.mysql_errno());    
    }
    else{
        return $db;    
    }
}

我在其他文件中所做的只是 需要它,然后使用然后$db 运行查询我正在使用最新版本的 xaamp 和 php 5.6

我将首先从错误开始。您正在混合库,mysql_mysqli_不能也不会相互配合。你需要选择一个并随它去。现在您应该选择mysqli_*选项,因为mysql_已被弃用:

此扩展从 PHP 5.5.0 开始已弃用,并将在 未来。相反,应该使用 MySQLi 或 PDO_MySQL 扩展。

摘自 php.net 手册


现在你正在做的事情,非常糟糕。你打开了这么多连接。把它从函数中取出,并像这样:

$host = "text";
$user = "text";
$password = "text";
$database = "text";
$db = mysqli_connect($host, $user, $password, $database);
if(!$db) {
    die('OOOPS'.mysqli_error());    
}

现在,您只需要在打算使用数据库的每个页面上包含上述文件(称为您想要的任何内容,例如db.php或其他内容)。

这样,您就不必每次使用数据库时都这样做:

$db = db();
mysqli_query($db, $query);

这是相当多余的。

此错误

是因为您没有运行 db() 函数,所以 var $db 尚未定义><。如果要将此文件用作连接文件,则不需要函数。