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 相关文章推荐
php设计模式 Decorator(装饰模式)
Jun 26 PHP
discuz程序的PHP加密函数原理分析
Aug 05 PHP
jQuery EasyUI API 中文文档 - DateBox日期框
Oct 15 PHP
PHP的Yii框架使用中的一些错误解决方法与建议
Aug 21 PHP
讲解WordPress中用于获取评论模板和搜索表单的PHP函数
Dec 28 PHP
详解js异步文件加载器
Jan 24 PHP
利用PHP绘图函数实现简单验证码功能的方法
Oct 18 PHP
Yii实现文章列表置顶功能示例
Oct 18 PHP
php array_values 返回数组的所有值详解及实例
Nov 12 PHP
PHP生成图片缩略图类示例
Jan 12 PHP
用Laravel Sms实现laravel短信验证码的发送的实现
Nov 29 PHP
Laravel如何创建服务器提供者实例代码
Apr 15 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
浅谈apache和nginx的rewrite的区别
2013/02/22 PHP
PHP基础之运算符的使用方法
2013/04/28 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
JavaScript 判断浏览器类型及版本
2009/02/21 Javascript
Draggable Elements 元素拖拽功能实现代码
2011/03/30 Javascript
js页面滚动时层智能浮动定位实现(jQuery/MooTools)
2011/08/23 Javascript
给jQuery方法添加回调函数一款插件的应用
2013/01/21 Javascript
jQuery读取和设定KindEditor值的方法
2013/11/22 Javascript
JavaScript实现九九乘法表的简单实例
2016/06/07 Javascript
简单实现js间歇或无缝滚动效果
2016/06/29 Javascript
在Docker快速部署Node.js应用的详细步骤
2016/09/02 Javascript
在Web项目中引入Jquery插件报错的完美解决方案(图解)
2016/09/19 Javascript
简单理解Vue中的nextTick方法
2018/01/30 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
2019/11/09 Javascript
解决vue无法侦听数组及对象属性的变化问题
2020/07/17 Javascript
[44:58]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第二场
2018/04/06 DOTA
Python教程之全局变量用法
2016/06/27 Python
Ruby元编程基础学习笔记整理
2016/07/02 Python
Python 制作糗事百科爬虫实例
2016/09/22 Python
使用python画个小猪佩奇的示例代码
2018/06/06 Python
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
2018/11/14 Python
python读取几个G的csv文件方法
2019/01/07 Python
Python学习笔记之For循环用法详解
2019/08/14 Python
python协程gevent案例 爬取斗鱼图片过程解析
2019/08/27 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
2020/01/20 Python
python利用百度云接口实现车牌识别的示例
2020/02/21 Python
利用 PyCharm 实现本地代码和远端的实时同步功能
2020/03/23 Python
Python urllib3软件包的使用说明
2020/11/18 Python
Python用Jira库来操作Jira
2020/12/28 Python
CSS Grid布局教程之什么是网格布局
2014/12/30 HTML / CSS
环境工程专业个人求职信
2013/12/05 职场文书
违反校纪校规检讨书
2014/02/15 职场文书
房展策划方案
2014/06/07 职场文书
房产证明范本
2015/06/19 职场文书
开学随笔
2015/08/15 职场文书
什么是创业计划书?什么是商业计划书?这里一一解答
2019/07/12 职场文书