目前,对于我们的登录系统等,我们使用带有以下内容的connect.php文件
$connect_error = 'Sorry, we\'re currently experiencing connection problems.';
mysql_connect('localhost', 'x', 'x') or die($connect_error);
mysql_select_db('x');
我们目前正在开发一个系统,我们希望用户能够将设备添加到他们的帐户
我们的主表存储了所有用户信息,例如名字,姓氏,电子邮件,密码
在此表中,我们添加了以下字段 - 设备1,设备2,设备3
除此之外,我们还想访问另一个数据库,我们希望在主数据库中保存设备ID,以便我们知道谁拥有哪些设备。
第二个数据库将包含设备ID,Lat,Long,Time
我们希望能够读出任何一个数据库,我不确定如何指定要连接的数据库,因为我只处理过一个数据库
我不确定它是否可行,或者我是否会采用完全错误的方式 - 两个数据库将位于同一服务器上,如果有帮助,我们可以将同一用户分配给两个数据库
由于
答案 0 :(得分:2)
不应该使用,因为不推荐使用mysql_ *函数:
$database_handler_1 = mysql_connect("localhost", "username", "password");
// The fourth parameter is for "new link"
$database_handler_2 = mysql_connect("localhost", "username", "password", true);
// Insert as parameter the database handler
mysql_select_db('database1', $database_handler_1);
mysql_select_db('database2', $database_handler_2);
// And run queries with the database handler as second parameter:
mysql_query("SELECT * FROM table", $database_handler_1);
mysql_query("SELECT * FROM table", $database_handler_2);
可以改为使用:
$database_handler_1 = new PDO('mysql:host=localhost;dbname=database1', $user, $pass);
$database_handler_2 = new PDO('mysql:host=localhost;dbname=database2', $user, $pass);
$database_handler_1->query('SELECT * from FOO')
$database_handler_1->query('SELECT * from BAR')
(在这里查看完整的PDO文档:http://php.net/manual/en/pdo.connections.php)
答案 1 :(得分:0)
首先,您不应该使用mysql_*
函数,因为已弃用。请使用MySQLi或PDO。
在Mysql中,解决方案是使用mysql_connect返回的链接标识符。但是如果使用MySQLi或PDO,则需要先创建这些对象并使用该对象。 MySQLi的OOP接口没有链接标识符的概念。从PHP手册中阅读this page,帮助您进行迁移。对于PDO,请使用this tutorial来学习。
对于MySQLi扩展,它已经是一个对象,该对象包含数据库信息。
$db1 = new mysqli(...);
$db2 = new mysqli(...);
// sending query in database 1
$db1->query("...")
// sending query in database 2
$db2->query("...")
对于MySQL扩展,mysql_connect()返回链接标识符。您应该将其保存在变量中并使用它。
$link1 = mysql_connect();
mysql_select_db($dbnane, $link1);
$link2 = mysql_connect();
mysql_select_db($dbnane, $link2);
In query you should use it like this,
mysql_query($query, $link1); // query in first db
mysql_query($query2, $link2); // query in second db;