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_odbc和php写的serach数据库程序
Oct 09 PHP
PHP中的正规表达式(一)
Oct 09 PHP
php实现从ftp服务器上下载文件树到本地电脑的程序
Feb 10 PHP
php中explode与split的区别介绍
Oct 03 PHP
php实现按文件名搜索文件的远程文件查找器
May 10 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
Jan 04 PHP
php中session与cookie的比较
Jan 27 PHP
PHP中的表达式简述
May 29 PHP
thinkPHP中_initialize方法实例分析
Dec 05 PHP
Yii2数据库操作常用方法小结
May 04 PHP
浅析PHP数据导出知识点
Feb 17 PHP
php使用QueryList轻松采集js动态渲染页面方法
Sep 11 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高级OOP技术演示
2009/08/27 PHP
Apache服务器无法使用的解决方法
2013/05/08 PHP
详解YII关联查询
2016/01/10 PHP
Yii2框架redis基本应用示例
2018/07/13 PHP
Laravel框架路由管理简单示例
2019/05/07 PHP
使用prototype.js 的时候应该特别注意的几个问题.
2007/04/12 Javascript
javascript 解决表单仍然提交即使监听处理函数返回false
2010/03/14 Javascript
基于Jquery+Ajax+Json的高效分页实现代码
2011/10/29 Javascript
Js如何判断客户端是PC还是手持设备简单分析
2012/11/22 Javascript
JavaScript通过join函数连接数组里所有元素的方法
2015/03/20 Javascript
全系IE支持Bootstrap的解决方法
2015/10/19 Javascript
Bootstrap与KnockoutJs相结合实现分页效果实例详解
2016/05/03 Javascript
js停止冒泡和阻止浏览器默认行为的简单方法
2016/05/15 Javascript
使用bootstrap validator的remote验证代码经验分享(推荐)
2016/09/21 Javascript
详解基于webpack和vue.js搭建开发环境
2017/04/05 Javascript
基于react框架使用的一些细节要点的思考
2017/05/31 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
2017/08/19 jQuery
JS实现浏览上传文件的代码
2017/08/23 Javascript
解决Vue开发中对话框被遮罩层挡住的问题
2018/11/26 Javascript
微信小程序当前时间时段选择器插件使用方法详解
2018/12/28 Javascript
TypeScript之调用栈的实现
2019/12/31 Javascript
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
2020/07/17 Javascript
关于ES6尾调用优化的使用
2020/09/11 Javascript
python实现TCP服务器端与客户端的方法详解
2015/04/30 Python
python读取word文档的方法
2015/05/09 Python
使用Python将Mysql的查询数据导出到文件的方法
2019/02/25 Python
Python txt文件常用读写操作代码实例
2020/08/03 Python
CSS3 制作绽放的莲花采用效果叠加实现
2013/01/31 HTML / CSS
纯css3制作煽动翅膀的蝴蝶的示例
2018/04/23 HTML / CSS
Html5 video标签视频的最佳实践
2020/02/26 HTML / CSS
新西兰珠宝品牌:Michael Hill
2017/09/16 全球购物
客服专员岗位职责范本
2013/11/29 职场文书
三国演义读书笔记
2015/06/25 职场文书
汶川大地震感悟
2015/08/10 职场文书
2016同学毕业寄语大全
2015/12/04 职场文书
win10如何快速切换窗口 win10切换窗口快捷键分享
2022/07/23 数码科技