-1

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

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

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

谢谢

4

2 回答 2

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

于 2013-01-05T02:56:07.093 回答
0

首先,您不应该使用mysql_*已弃用的函数。为此使用MySQLiPDO

在 Mysql 中,解决方案是使用mysql_connect返回的链接标识符。但是如果您使用 MySQLi 或 PDO,您需要先创建这些对象并使用该对象。MySQLi 的 OOP 接口没有链接标识符的概念。从帮助您迁移的 PHP 手册中阅读此页面。对于 PDO,请使用本教程来学习。

对于 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;
于 2013-01-05T02:57:26.157 回答