2 mysqli包含一页上的文件

时间:2014-06-19 22:14:01

标签: php mysqli

想知道是否可以在同一页面上包含两个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数据库连接?

1 个答案:

答案 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");