PHP同时连接多个mysql数据库示例代码


Posted in PHP onMarch 17, 2014

实例:

<?php 
$conn1 = mysql_connect("127.0.0.1", "root","root","db1"); 
mysql_select_db("db1", $conn1); 
$conn2 = mysql_connect("127.0.0.1", "root","root","db2"); 
mysql_select_db("db2", $conn2); $sql = "select * from ip"; 
$query = mysql_query($sql); 
if($row = mysql_fetch_array($query)) 
echo $row[0]."\n"; 
$sql = "select * from web "; 
$query = mysql_query($sql); 
if($row = mysql_fetch_array($query)) 
echo $row[0]; 
?>

这段代码存在问题,在程序执行时会报错:PHP Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in ....

原因分析:

程序开始建立两个数据库链接,函数mysql_query()原型:

resource mysql_query ( string $query [, resource $link_identifier ] )

向与指定的连接标识符关联的服务器中的当前活动数据库发送一条查询。如果没有指定 link_identifier,则使用上一个打开的连接。如果没有打开的连接,本函数会尝试无参数调用 mysql_connect() 函数来建立一个连接并使用之。查询结果会被缓存。

在本例中由于没有指定link_identifier,所以,在执行第一条sql时,默认使用的是上一个打开的链接,即$conn2,而实际上第一条sql语句应该使用的是$conn1,所以导致报错,所以为了能够链接多个mysql数据库,可以使用如下方法:

方法1:在mysql_query函数中指定所用连接,即:

<?php 
$conn1 = mysql_connect("127.0.0.1", "root","root","db1"); 
mysql_select_db("Muma", $conn1); 
$conn2 = mysql_connect("127.0.0.1", "root","root","db2"); 
mysql_select_db("product", $conn2); $sql = "select * from ip"; 
$query = mysql_query($sql,$conn1); //添加连接$conn1 
if($row = mysql_fetch_array($query)) 
echo $row[0]."\n"; 
$sql = "select * from web "; 
$query = mysql_query($sql, $conn2); 
if($row = mysql_fetch_array($query)) 
echo $row[0]; 
?>

方法2:在sql语句中关联所用数据库,此时可以省略mysql_query的第二个参数,即:
<?php 
$conn1 = mysql_connect("127.0.0.1", "root","root","db1"); 
mysql_select_db("db1", $conn1); 
$conn2 = mysql_connect("127.0.0.1", "root","root","db2"); 
mysql_select_db("db2", $conn2); $sql = "select * from db1.ip"; //关联数据库 
$query = mysql_query($sql); 
if($row = mysql_fetch_array($query)) 
echo $row[0]."\n"; 
$sql = "select * from db2.web "; 
$query = mysql_query($sql); 
if($row = mysql_fetch_array($query)) 
echo $row[0]; 
?>
PHP 相关文章推荐
Function eregi is deprecated (解决方法)
Jun 21 PHP
php根据日期判断星座的函数分享
Feb 13 PHP
Linux下PHP加速器APC的安装与配置笔记
Oct 24 PHP
PHP消息队列用法实例分析
Feb 12 PHP
thinkPHP简单遍历数组方法分析
May 16 PHP
PHP表单数据写入MySQL数据库的代码
May 31 PHP
PHP实现求两个字符串最长公共子串的方法示例
Nov 17 PHP
PHP使用Redis长连接的方法详解
Feb 12 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
Feb 10 PHP
PHP实现微信小程序用户授权的工具类示例
Mar 05 PHP
TP5框架安全机制实例分析
Apr 05 PHP
PHP7 其他修改
Mar 09 PHP
PHP的password_hash()使用实例
Mar 17 #PHP
PHP5各个版本的新功能和新特性总结
Mar 16 #PHP
使用PHP生成二维码的两种方法(带logo图像)
Mar 14 #PHP
19个超实用的PHP代码片段
Mar 14 #PHP
php的zip解压缩类pclzip使用示例
Mar 14 #PHP
php多功能图片处理类分享(php图片缩放类)
Mar 14 #PHP
zf框架db类的分页示例分享
Mar 14 #PHP
You might like
destoon在360浏览器下出现用户被强行注销的解决方法
2014/06/26 PHP
php中$_POST与php://input的区别实例分析
2015/01/07 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
2015/03/12 PHP
php快速查找数据库中恶意代码的方法
2015/04/01 PHP
JQuery 简便实现页面元素数据验证功能
2007/03/24 Javascript
弹出广告特效(一个IP只弹出一次)的代码
2007/07/27 Javascript
jQuery 相关控件的事件操作分解
2009/08/03 Javascript
利用json获取字符出现次数的代码
2012/03/22 Javascript
javascript错误的认识不用关心内存管理
2012/12/15 Javascript
如何实现修改密码时密码框显示保存到cookie的密码
2013/12/10 Javascript
超级给力的JavaScript的React框架入门教程
2015/07/02 Javascript
AngularJS 最常用的功能汇总
2016/02/17 Javascript
基于socket.io+express实现多房间聊天
2016/03/17 Javascript
svg动画之动态描边效果
2017/02/22 Javascript
创建简单的node服务器实例(分享)
2017/06/23 Javascript
AngularJS 实现点击按钮获取验证码功能实例代码
2017/07/13 Javascript
Bootstrap modal只加载一次数据的解决办法(推荐)
2017/11/24 Javascript
vue 自定义 select内置组件
2018/04/10 Javascript
vue2.0 下拉框默认标题设置方法
2018/08/22 Javascript
Node.js的进程管理的深入理解
2019/01/09 Javascript
JavaScript遍历DOM元素的常见方式示例
2019/02/16 Javascript
[42:32]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第二局
2016/02/27 DOTA
python调用新浪微博API项目实践
2014/07/28 Python
Python multiprocessing多进程原理与应用示例
2019/02/28 Python
Flask框架模板渲染操作简单示例
2019/07/31 Python
python操作cfg配置文件方式
2019/12/22 Python
pytorch 实现查看网络中的参数
2020/01/06 Python
新手常见Python错误及异常解决处理方案
2020/06/18 Python
艺龙旅行网酒店预订:国内、港澳台酒店
2018/06/26 全球购物
澳大利亚在线床零售商:Bedworks
2020/09/01 全球购物
nohup的用法
2014/08/10 面试题
最新销售员个人自荐信
2013/09/21 职场文书
前台文员的岗位职责
2013/11/14 职场文书
高考寄语大全
2014/04/08 职场文书
机械电子工程专业求职信
2014/06/22 职场文书
SpringBoot2零基础到精通之异常处理与web原生组件注入
2022/03/22 Java/Android