【问题标题】:Php function return database connection doesn't work when included in other files当包含在其他文件中时,php函数返回数据库连接不起作用
【发布时间】:2015-01-19 01:29:54
【问题描述】:

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

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

【问题讨论】:

  • 这个函数怎么调用?
  • 例如,如果你想运行一个查询,我在文件顶部调用它,然后使用 $db 变量让我们说 mysqli_query($db,$query)
  • 你能贴出完整的代码让我检查语法吗?

标签: php database mysqli include connection


【解决方案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);

这是相当多余的。

【讨论】:

    【解决方案2】:

    这个错误是因为你没有运行 db() 函数,所以 $db 变量还没有定义。
    如果您将此文件用作连接文件,则不需要函数。

    【讨论】:

      猜你喜欢
      • 2014-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-28
      • 2022-12-19
      • 1970-01-01
      • 2019-02-06
      相关资源
      最近更新 更多