PHP Access 2数据库

时间:2013-01-05 02:49:09

标签: php mysql

目前,对于我们的登录系统等,我们使用带有以下内容的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

我们希望能够读出任何一个数据库,我不确定如何指定要连接的数据库,因为我只处理过一个数据库

我不确定它是否可行,或者我是否会采用完全错误的方式 - 两个数据库将位于同一服务器上,如果有帮助,我们可以将同一用户分配给两个数据库

由于

2 个答案:

答案 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_*函数,因为已弃用。请使用MySQLiPDO

在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;