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 相关文章推荐
mysql limit查询优化分析
Nov 12 PHP
组合算法的PHP解答方法
Feb 04 PHP
PHP 获取文件路径(灵活应用__FILE__)
Feb 15 PHP
PHP中图片等比缩放的实例
Mar 24 PHP
php利用反射实现插件机制的方法
Mar 14 PHP
实现PHP框架系列文章(6)mysql数据库方法
Mar 04 PHP
Symfony模板的快捷变量用法实例
Mar 17 PHP
PHP实现链式操作的原理详解
Sep 16 PHP
php mysql like 实现多关键词搜索的方法
Oct 29 PHP
PHP读取Excel类文件
May 15 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
Jul 04 PHP
php使用ftp实现文件上传与下载功能
Jul 21 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抓取、分析国内视频网站的视频信息工具类
2014/04/02 PHP
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
PHP PDOStatement::bindParam讲解
2019/01/30 PHP
javascript 网页跳转的方法
2008/12/24 Javascript
jQuery 页面载入进度条实现代码
2009/02/08 Javascript
JavaScript的继承的封装介绍
2013/10/15 Javascript
js中哈希表的几种用法总结
2014/01/28 Javascript
用js模拟struts2的多action调用示例
2014/05/19 Javascript
js判断上传文件类型判断FileUpload文件类型代码
2014/05/20 Javascript
Js操作DOM元素及获取浏览器高宽的简单方法
2016/09/08 Javascript
Node.js + Redis Sorted Set实现任务队列
2016/09/19 Javascript
Bootstrap中点击按钮后变灰并显示加载中实例代码
2016/09/23 Javascript
AngularJS ng-repeat指令中使用track by子语句解决重复数据遍历错误问题
2017/01/21 Javascript
深入理解ES7的async/await的用法
2017/09/09 Javascript
Vue的土著指令和自定义指令实例详解
2018/02/04 Javascript
vue-cli系列之vue-cli-service整体架构浅析
2019/01/14 Javascript
用 js 写一个 js 解释器过程详解
2019/08/02 Javascript
js+canvas实现图片格式webp/png/jpeg在线转换
2020/08/22 Javascript
Python学习小技巧之列表项的推导式与过滤操作
2017/05/20 Python
python如何重载模块实例解析
2018/01/25 Python
Python实现删除时保留特定文件夹和文件的示例
2018/04/27 Python
浅谈python中np.array的shape( ,)与( ,1)的区别
2018/06/04 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
2018/07/30 Python
python将txt文档每行内容循环插入数据库的方法
2018/12/28 Python
浅析python,PyCharm,Anaconda三者之间的关系
2019/11/27 Python
keras的backend 设置 tensorflow,theano操作
2020/06/30 Python
Python接口自动化测试的实现
2020/08/28 Python
个人简历自我鉴定
2013/10/11 职场文书
奥巴马连任演讲稿
2014/05/15 职场文书
机械设计及其自动化专业求职信
2014/06/09 职场文书
学校安全教育月活动总结
2014/07/07 职场文书
2014年幼儿园后勤工作总结
2014/11/10 职场文书
公司禁烟通知
2015/04/23 职场文书
公司年会晚会开幕词
2019/04/02 职场文书
怎样评估创业计划书是否有可行性?
2019/08/07 职场文书
解决pytorch-gpu 安装失败的记录
2021/05/24 Python