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 相关文章推荐
dedecms中显示数字验证码的修改方法
Mar 21 PHP
PHP学习之整理字符串
Apr 17 PHP
PHP操作MongoDB时的整数问题及对策说明
May 02 PHP
全新的PDO数据库操作类php版(仅适用Mysql)
Jul 22 PHP
Linux操作系统安装LAMP环境
Jun 26 PHP
浅谈PHP发送HTTP请求的几种方式
Jul 25 PHP
Laravel构建即时应用的一种实现方法详解
Aug 31 PHP
PHP实现的大文件切割与合并功能示例
Apr 10 PHP
php 中phar包的使用教程详解
Oct 26 PHP
PHP的PDO错误与错误处理
Jan 27 PHP
php创建多级目录与级联删除文件的方法示例
Sep 12 PHP
在laravel中使用with实现动态添加where条件
Oct 10 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
php mysql 判断update之后是否更新了的方法
2012/01/10 PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
2017/03/13 PHP
Laravel中使用Queue的最基本操作教程
2017/12/27 PHP
[原创]静态页面也可以实现预览 列表不同的显示方式
2006/10/14 Javascript
将HTMLCollection/NodeList/伪数组转换成数组的实现方法
2011/06/20 Javascript
Chosen 基于jquery的选择框插件使用方法
2012/05/30 Javascript
jquery和javascript的区别(常用方法比较)
2013/07/04 Javascript
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
详解获取jq ul第一个li定位的四种解决方案
2016/11/23 Javascript
基于jQuery实现滚动切换效果
2016/12/02 Javascript
javascript获取以及设置光标位置
2017/02/16 Javascript
vue 路由页面之间实现用手指进行滑动的方法
2018/02/23 Javascript
vue配置请求本地json数据的方法
2018/04/11 Javascript
使用typescript开发angular模块并发布npm包
2018/04/19 Javascript
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
2018/08/29 Javascript
JS函数动态传递参数的方法分析【基于arguments对象】
2019/06/05 Javascript
小程序input数据双向绑定实现方法
2019/10/17 Javascript
JS自定义滚动条效果
2020/03/13 Javascript
微信小程序实现组件顶端固定或底端固定效果(不随滚动而滚动)
2020/04/09 Javascript
[02:40]DOTA2英雄基础教程 炼金术士
2013/12/23 DOTA
Python实现3行代码解简单的一元一次方程
2014/08/18 Python
Python Matplotlib库入门指南
2015/05/18 Python
Python之dict(或对象)与json之间的互相转化实例
2018/06/05 Python
Python 访问限制 private public的详细介绍
2018/10/16 Python
新加坡网上化妆品店:Best Buy World
2018/05/18 全球购物
英国索普公园票务和酒店套餐:Thorpe Breaks
2019/09/14 全球购物
超市促销实习自我鉴定
2013/09/23 职场文书
大学生收银员求职信分享
2014/01/02 职场文书
会计专业求职信范文
2014/03/16 职场文书
中班幼儿评语大全
2014/04/30 职场文书
工商管理专业毕业生自我鉴定2014
2014/10/04 职场文书
前台接待岗位职责
2015/02/03 职场文书
党员转正党支部意见
2015/06/02 职场文书
OpenCV-Python实现轮廓拟合
2021/06/08 Python
通过feDisplacementMap和feImage实现水波特效
2022/04/24 HTML / CSS
JS前端使用canvas实现物体的点选示例
2022/08/05 Javascript