将 SQL 数据库连接传递给 PHP 函数

Pass SQL database connection to PHP function

我正在从第二个 PHP 文件调用一个函数,我想避免再次创建数据库连接。我正在使用此代码,但它不起作用。

$Db = mysqli_init();
$Db->options(MYSQLI_OPT_LOCAL_INFILE, true);
$Db->real_connect($servername, $username, $password, $dbname, 3306);
$connection = $Db->real_connect($servername, $username, $password, $dbname, 3306);

CheckTableMetrics($connection, $dbname, $table1, $table2, $metric1, $metric2, $date1, $date2, $start_date, $end_date);

我突然遇到错误。如果我将代码的第一部分放在包含函数的 PHP 文件中,一切正常。

我得到的错误:

mysqli::query(): invalid object or resource mysqli

Call to a member function fetch_assoc() on a non-object

如果我只输入:

,代码就可以正常工作
$Db = mysqli_init();
$Db->options(MYSQLI_OPT_LOCAL_INFILE, true);
$Db->real_connect($servername, $username, $password, $dbname, 3306);

哪种方法最好?

你的问题很简单:

$connection = $Db->real_connect($servername, $username, $password, $dbname, 3306);

这是错误的。 real_connect() returns 布尔值标记成功或失败,不是连接的数据库对象。相反,您应该将 $Db 发送到您的函数中,它就会正常工作。