如何使用多个数据库名称作为 mysql 查询在 php 中的变量

标签: MySQL PHP
发布时间: 2017/4/9 21:55:09
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我需要写 2 mysql 查询在 php 脚本中,在两种情况下我想要在同一服务器上从两个不同数据库获取的数据。但这些数据库名称存储在两个不同的变量。

$link1 = mysql_connect($hostname_database,$username_database,$password_database);      

$database1 = "android1";
$database2= "android2";


$result1 = mysql_query("Select * from database1.tablename");
$result2 = mysql_query("Select * from database2.tablename");

实现这一目标的正确方法是什么?

解决方法 1:

这是你会如何连接两个数据库。您需要发送真实作为第二个连接,在第四个参数,否则将使用第一个连接。

$db1 = mysql_connect($hostname, $username, $password); 
$db2 = mysql_connect($hostname, $username, $password, true); 

mysql_select_db('database1', $db1);
mysql_select_db('database2', $db2);

然后,查询的第一个数据库︰

mysql_query('select * from tablename', $db1);

第二个数据库的查询︰

mysql_query('select * from tablename', $db2);

编辑 1︰ 我以此从等答案,但似乎无法找到答案。

编辑 2︰ 发现它︰你是如何连接到单个网页上的多个 MySQL 数据库?

编辑 3︰ 首选的方式︰

如果您使用 PHP5 (和你也应该考虑到 PHP4 已弃用),则应使用PDO,因为这正慢慢成为新的标准。PDO,一个 (非常) 重要好处是,它支持绑定的参数,使得为更安全的代码。

你将连接通过 PDO,像这样︰

try {
  $db = new PDO('mysql:dbname=databasename;host=127.0.0.1', 'username', 'password');
} catch (PDOException $ex) {
  echo 'Connection failed: ' . $ex->getMessage();
}

(当然替换数据库、 用户名和密码上面)

然后,您可以查询这样数据库︰

$result = $db->query("select * from tablename");
foreach ($result as $row) {
  echo $row['foo'] . "\n";
}

或者,如果您有变量︰

$stmt = $db->prepare("select * from tablename where id = :id");
$stmt->execute(array(':id' => 42));
$row = $stmt->fetch();

如果您需要多个连接打开一次,你可以简单地创建 PDO 的多个实例︰

try {
  $db1 = new PDO('mysql:dbname=databas1;host=127.0.0.1', 'username', 'password');
  $db2 = new PDO('mysql:dbname=databas2;host=127.0.0.1', 'username', 'password');
} catch (PDOException $ex) {
  echo 'Connection failed: ' . $ex->getMessage();
}
官方微信
官方QQ群
31647020