想知道是否可以在同一页面上包含两个mysqli连接包含php文件。
我有一个基本网站,我正在使用mysql学习/开发php。我有一个用于存储用户信息的数据库,另一个用于网站特定信息。我可以毫无问题地彼此独立使用。
CONFIG.PHP:
DEFINE("HOST", "127.0.0.1");
DEFINE("USER","root");
DEFINE("PASS","");
DEFINE("DB","sv");
connect.php:
include_once 'config.php';
$mysqli = new mysqli(HOST, USER, PASS, DB);
sec_config.php:
define("HOST", "127.0.0.1");
define("USER", "sec_user");
define("PASSWORD", "");
define("DATABASE", "svn");
sec_connect.php:
include_once 'sec_config.php'; // As functions.php is not included
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);
我的php页面可以成功查询和显示来自这些连接的数据。我当前包含的index.php包括sec_connect,我正在尝试添加另一个(在其自身内)包含的php页面
include_once("connect.php");
当我尝试运行我收到的页面时
mysqli::mysqli(): php_network_getaddresses: getaddrinfo failed: No such host is known.
mysqli::mysqli(): (HY000/2002): php_network_getaddresses: ...as above
mysqli::prepare(): Couldn't fetch mysqli in
Fatal error: Call to a member function bind_param() on a non-object in
我只是注释掉了上面的include_once,让一切都恢复正常。
我正在使用xamp for dev的Windows,我尝试通过localhost和我的ip地址访问,我收到同样的错误。我已经尝试过编辑hosts文件,我也尝试修改连接文件中的值是唯一的(改回来,因为它没有帮助)。
希望这是一个很好的问题:是否可以通过我的index.php页面中的不同包含来包含两个mysqli数据库连接?
答案 0 :(得分:3)
如果您使用不同的变量引用两个不同的连接(它们毕竟是两个不同的实例),这应该可行。
例如:
<强> file1.php 强>
$db1 = new mysqli(HOST1, USER1, PASSWORD1, DATABASE1);
<强> file2.php 强>
$db2 = new mysqli(HOST2, USER2, PASSWORD2, DATABASE2);
<强> file3.php 强>
require "file1.php"
require "file2.php"
$result1 = $db1->query("SELECT * FROM table");
$result2 = $db2->query("SELECT * FROM some_other_table");