PHP - 连接到多个 MySQL 数据库

标签 php mysql database

所以我有一个 PHP 页面,它首先连接到我的数据库,并使用那里的信息执行一系列操作。现在我想连接到同一 PHP 页面中的另一个数据库并从那里访问数据并将信息插入到我的原始数据库中。

代码:

<?php

session_start();

include ("account.php");
include ("connect.php");

....
do stuff here
....

include ("account2.php");
include ("connect2.php");

...
$thing = "SELECT abc, efg, hij FROM table ORDER BY RAND() LIMIT 1" ;
$thing = mysql_query($thing);
echo "$thing";
....

....
insert information into my database
(From account.php & connect.php files)
....

?>

除了 $thing 之外的所有内容都会显示。它说,“无效查询:查询为空”,但我知道我使用的查询有效,因为当我在 account2 数据库中运行它时,我得到了我想要的结果。是我的逻辑有问题还是其他什么问题?

最佳答案

执行查询时您没有提及数据库连接链接。可能您的第二个数据库连接是在 connection.php 文件中的第一个数据库连接之后定义的。因此解释器在执行查询时正在考虑第二个连接。

用查询定义连接链接,

$thing = mysql_query($thing,$conn); //$conn is your mysql_connect

您仍然可以使用 mysql_connect 或类似的 mysql_ 函数(程序方式),但所有这些现在都已弃用。您应该使用 mysqli_(mysql 改进)函数或采用面向对象的方式。

$conn1 = new mysqli(SERVER1,DB_USER1,DB_PASS1,DB1);
$conn2 = new mysqli(SERVER2,DB_USER2,DB_PASS2,DB2);

if($conn1 ->connect_errno > 0 || $conn2 ->connect_errno > 0){
    die('Unable to connect to database server.');
}

现在在执行查询时,

$query = "SELECT abc, efg, hij FROM table ORDER BY RAND() LIMIT 1";
$thing = $conn1 -> query($query); //if it's second connection query user $conn2

关于PHP - 连接到多个 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20027275/

相关文章:

mysql - 搜索 mysql 表字段以查找字段结尾的最佳方法是什么?

php - Doctrine DBAL Query Builder 缺少 insert() 方法

iphone - 如何以编程方式从 iPhone 将数据插入 mysql

php - 数据库和 Web 服务器位于不同的提供商机器上

MySQL - 从一个表到另一个表的引用数据

java - 使用 Hypersonic 数据库的 JUnit 测试

php - 将 mysql 查询值添加到 php 数组

php - 如何使用 ffmpeg 跳过起始帧

php - 如何让这个 UPDATE 只在这个 while 循环中工作?

mysql - 使用查询作为表来计算列实例