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

时间:2015-01-19 01:29:55

标签: php database mysqli include connection

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

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

2 个答案:

答案 0 :(得分:1)

我先从错误开始。您正在混合库,mysql_mysqli_ 不能也不会相互协作。你需要选择一个并继续使用它。现在您应该选择mysqli_*选项,因为不推荐使用mysql_

  

自PHP 5.5.0起,此扩展程序已弃用,并将在中删除   未来。相反,应该使用MySQLi或PDO_MySQL扩展。

Taken from the php.net manual


现在你正在做的事情非常糟糕。你打开了这么多联系。把它从一个函数中拿出来就像这样:

$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);

这是多余的。

答案 1 :(得分:0)

此错误是因为您没有运行db()函数,因此$ db var尚未定义 如果您将此文件用作连接文件,则不需要任何功能。