0 0

mysql如何同时连接两个数据库5

有两个数据库:BBS,NEWS


我用的数据库链接是:
$dbhost = 'localhost '; // 数据库服务器
$dbuser = 'user '; // 数据库用户名
$dbpw = 'password '; // 数据库密码
$dbname = 'bbs '; // BBS数据库
$dbname_1 = 'news '; // NEWS数据库

$db = mysql_connect($dbhost, $dbuser, $dbpw);

mysql_select_db($dbname,$db); //链接BBS数据库

mysql_select_db($dbname_1,$db); //链接NEWS数据库

$sql = mysql_query( "select userid from user where userid= ".$userid. " ",$db);
if($myrow = mysql_fetch_array($sql)){
echo $myrow[ 'uid '];
}

上面的user表是NEWS数据库里的.但是报错了,不知道为什么,错误提示

mysql_fetch_array(): supplied argument is not a valid MySQL result resource
网友回复:看看$sql = mysql_query( "select userid from user where userid= ".$userid. " ",$db);这句报什么错。
$sql = mysql_query( "select userid from user where userid= ".$userid. " ",$db) or die(mysql_error())
网友回复:$db = mysql_connect($dbhost, $dbuser, $dbpw);
mysql_select_db($dbname,$db); //链接BBS数据库

$db2 = mysql_connect($dbhost, $dbuser, $dbpw);
mysql_select_db($dbname_1,$db2); //链接NEWS数据库

$sql = mysql_query( "select userid from user where userid= ".$userid. " ",$db);
if($myrow = mysql_fetch_array($sql)){
echo $myrow[ 'uid '];
}

试试看。
网友回复:mysql_fetch_array(): supplied argument is not a valid MySQL result resource

这句好像是sql语句没执行!
网友回复:$db = mysql_connect($dbhost, $dbuser, $dbpw);
mysql_select_db($dbname,$db); //链接BBS数据库

$db2 = mysql_connect($dbhost, $dbuser, $dbpw);
mysql_select_db($dbname_1,$db2); //链接NEWS数据库

$sql = mysql_query( "select userid from news.user where userid= ".$userid. " ",$db2);
if($myrow = mysql_fetch_array($sql)){
echo $myrow[ 'userid '];
}


问题补充:
我的问题写得不清楚,对不起了,再来清楚一些的:
<?
$db1=mysql_connect("localhost","root","aa");
mysql_select_db('my',$db1);
$db2=mysql_connect('localhost','root','aa');
mysql_select_db('kgcms',$db1);
$sql1="select * from user";
$result1=mysql_query($sql1,$db1);
$row1=mysql_query($result1);
echo $row1['username'];
$sql2="select * from admin";
$result2=mysql_query($sql2,$db2);
$row2=mysql_fetch_assoc($result2);
echo $row2['userid'];
?>
运行结果是$result1根本没效果,而$result2是可以的,我的感觉是php只支持一个connection,就是最近查询的那个,不知有什么好的解决方式。
问题补充:
我明白了,应该是某刻只能只存在一个数据库连接,所以将两个链接分开写就行。
<?
$db1=mysql_connect("localhost","root","aa");
mysql_select_db('my',$db1);
$sql1="select * from user";
$result1=mysql_query($sql1,$db1);
$row1=mysql_query($result1);
echo $row1['username'];

$db2=mysql_connect('localhost','root','aa');
mysql_select_db('kgcms',$db1);
$sql2="select * from admin";
$result2=mysql_query($sql2,$db2);
$row2=mysql_fetch_assoc($result2);
echo $row2['userid'];
?>
PHP 
2009年3月23日 07:40

5个答案 按时间排序 按投票排序

0 0


这个问题搜索一下可以找到不少解答.数据库应该是只能一个链接的,

从csdn上面来的一段代码的范例,5个数据库连接的.

$dblink=@mysql_connect($hostname,$username,$password);  
  switch   ($_GET[no])  
  {  
      case   1:  
  @mysql_select_db($dbname1);  
          break;  
      case   2:  
  @mysql_select_db($dbname2);  
          break;  
      case   3:  
  @mysql_select_db($dbname3);  
          break;  
      case   4:  
  @mysql_select_db($dbname4);  
          break;  
      case   5:  
  @mysql_select_db($dbname5);  
          break;  
  }  


需要的时候调用不同的连接,这样的做法还是比较可行的.在同一个时间内只能连接一个数据库.

个人建议你将2个数据库的功能分别封装,比如

function newsFormDb1(){
}

function userFormDb2(){
}
直接调用封装的函数,函数里面各自调用自己的数据库连接,而不要这样一条直线下来的写代码,后期维护会很容易混乱,

2009年3月23日 11:15
0 0

你是ip问题还是同一台机子上的问题啊。
mysql_connect
函数有一个参数new_link
强制打开一个新链接

2009年3月23日 08:55
0 0


   

汗啊,仔细看看最后一个回复,说的就是你这个问题,要用echo $myrow[ 'userid '];

2009年3月23日 08:36
0 0

创建两个Connection就可以了

2009年3月23日 08:33
0 0


$sql = mysql_query( "select userid from user where userid= ".$userid. " ",$db);

echo $myrow[ 'uid '];

你的sql里面写的是select userid,而echo的时候却用uid,肯定会出错.$myrow[]里面的字段是跟数据库表的字段名对应的,你这里select userid的话,ehco也要用userid

2009年3月23日 08:32

相关推荐

    连接mysql sqlserver的两个数据库

    首先,我们来看标题提到的“连接mysql sqlserver的两个数据库”。这通常涉及到数据库之间的数据迁移、同步或者跨平台查询。为了实现这一目标,我们需要借助特定的驱动程序和工具。 在提供的压缩包文件中,有两个...

    ssh连接两个数据库

    ### SSH 连接两个数据库知识点解析 #### 一、SSH简介 SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录。它为数据传输提供安全的环境,防止数据被窃取或篡改。 #### 二、SSH在数据库连接中的应用 在...

    Unity3D教程:两种方法连接MySql数据库2

    本教程将介绍两种方法来连接Unity3D项目到MySQL数据库。 首先,我们来看第一种方法,使用MySQLDriverCS库。MySQLDriverCS是一个专门用于C#(Unity3D支持的语言)连接MySQL数据库的库。要实现这一连接,首先需要下载...

    C++连接mysql数据库的两种方法

    在代码中,通过创建一个数据库连接句柄并设置连接参数(如主机名、用户名、密码、数据库名等)来初始化连接。 (4)执行数据库操作。通过API函数建立连接后,可以使用MySQL提供的函数执行SQL命令和查询。完成后,...

    MyEclipse连接MySQL数据库报错解决办法

    一般MySQL连接不上,可能有两大原因:1、MyEclipse配置错误 2、MySQL配置不当。 一、我们一般的连接步骤如下: 1、在MyEclipse中连接MySQL数据库:依次点击window–&gt;show view–&gt;other–&gt;MyEclipse Database–&gt;DB ...

    c语言连接mysql数据库

    (文件中main函数中两个printf函数的输出为测试结果,调用连接函数前为NULL,调用连接函数后为一个地址,mysqlConnect函数中第一个参数为数据库所在ip,第二个和第三个参数是c编译所在环境的用户名和密码,第四个参数...

    一个mysql数据库连接类

    在这个数据库连接类中,用户可以根据其Web应用的需求,选择使用哪种连接方式。例如,对于那些需要跨多个页面访问同一数据库的用户,使用pconnect可能会提高性能。而对于单页应用或者不需要持久连接的场景,mysql_...

    MySQL 2个数据库之间的共享

    ### MySQL两个数据库之间的共享 在MySQL环境中实现两个数据库之间的共享主要通过复制机制来完成。本文将详细介绍MySQL数据库间共享的基本概念、配置步骤以及注意事项。 ### 基本概念 #### 复制机制 MySQL的复制...

    C#连接MySql数据库的两种方法

    ### C#连接MySql数据库的两种方法 #### 一、使用 MySQLDriverCS 连接 MySQL 数据库 **1. 下载与安装 MySQLDriverCS** 为了使用 MySQLDriverCS 来连接 MySQL 数据库,首先需要下载并安装 MySQLDriverCS。可以从...

    jdbc连接不同数据库方法

    在Java中,连接不同类型的数据库主要涉及以下几个步骤: 1. **加载驱动**:首先,需要加载对应数据库的JDBC驱动。例如,对于MySQL,我们需要加载`com.mysql.jdbc.Driver`;对于Oracle,可能是`oracle.jdbc.driver....

    MFC连接mysql数据库连接方法.doc

    创建一个名为`CADOConn`的类,该类将持有对`ADODB.Connection`和`ADODB.Recordset`对象的指针,这两个对象分别用于数据库连接和数据检索。在类中定义初始化连接的方法`OnInitADOConn()`,执行SQL的方法`ExecuteSQL...

    sqlYog连接MYSQL数据库

    6. **数据同步与对比**:SQLyog 可以比较两个数据库或数据库中的表结构,帮助用户识别差异并执行同步操作。 7. **数据库备份与恢复**:强大的备份和恢复功能,支持定时备份,确保数据安全。用户可以设定备份策略,...

    多数据库连接(支持MySql,Sqlserver,Oracle)

    `DataReader.cs`可能包含了一个数据库数据读取器类,数据读取器是数据库操作中的一个关键组件,用于高效地逐行读取查询结果,通常在处理大量数据时使用。这个类可能包含了读取数据行、获取字段值等方法。 `...

    同步两个数据库的数据

    例如,如果两个数据库同时有写入操作,可能会引发数据不一致,因此可能需要采用锁或者其他并发控制机制来避免此类问题。 总的来说,同步两个数据库的数据是一项复杂的工作,需要充分理解数据库的特性和同步的原理,...

    java实现两个mysql同步主库的数据

    在IT行业中,数据库同步是一个常见的需求,特别是在分布式系统或者高可用架构中,为了保证数据的一致性和完整性,通常需要将一个数据库(主库)的数据实时或定时地复制到另一个数据库(从库)。在这个场景中,Java...

    瀚高数据库连接工具,用于连接到本地或远程的瀚高数据库 请区别于瀚高迁移工具

    下载对方发来的两个迁移工具。 hgdbdeveloper:连接工具,用于连接到本地或远程的瀚高数据库。 migration:迁移工具,用于mysql数据库迁移到瀚高数据库。 3.1 连接瀚高数据库 解压 hgdbdeveloper-6.1.0-2024-01-16....

    springboot+mysql+oracle+druid 双数据库进行数据同步

    本项目主要探讨了如何使用SpringBoot框架结合MySQL和Oracle两个不同的数据库系统,实现数据的实时或定时同步,尤其是在数据量庞大的情况下(数十万条记录)避免内存溢出(OOM)问题。以下是对这个主题的详细阐述: ...

    Mysql正式/测试数据库表结构差异对比

    3. **比较表结构**:逐个比较两个数据库中的表,查找表名的差异以及每个表中字段(列)的差异,如字段数量、字段名称、字段类型、主键、外键等。 4. **反馈结果**:将发现的差异以清晰易懂的方式呈现给用户,可能是...

    C#连接MySQL数据库代码示例

    在C#项目中,我们需要添加对`MySql.Data` NuGet包的引用,它包含了MySQL连接所需的组件。 连接数据库的关键在于创建一个` MySqlConnection `对象,该对象是`MySql.Data.MySqlClient`命名空间下的类。连接字符串通常...

    如何在两台MySQL数据库间实现同步

    此外,对于大型系统,可能需要同步多个数据库或使用更复杂的同步策略。在这种情况下,可以使用`binlog-ignore-db`来排除不需要同步的数据库,或者使用`replicate-do-table`和`replicate-ignore-table`来控制特定表的...

Global site tag (gtag.js) - Google Analytics