将 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
发送到您的函数中,它就会正常工作。
我正在从第二个 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
发送到您的函数中,它就会正常工作。