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 相关文章推荐
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
Aug 12 PHP
利用Ffmpeg获得flv视频缩略图和视频时间的代码
Sep 15 PHP
表格展示无限级分类(PHP版)
Aug 21 PHP
PHP容易忘记的知识点分享
Apr 30 PHP
解析php框架codeigniter中如何使用框架的session
Jun 24 PHP
php设计模式之单例模式使用示例
Jan 20 PHP
php自定文件保存session的方法
Dec 10 PHP
PHP和MySql中32位和64位的整形范围是多少
Feb 18 PHP
在PHP中输出JS语句以及乱码问题的解决方案
Feb 13 PHP
PHP错误提示It is not safe to rely on the system……的解决方法
Mar 25 PHP
Laravel 前端资源配置教程
Oct 18 PHP
Laravel6.18.19如何优雅的切换发件账户
Jun 14 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
elgg 获取文件图标地址的方法
2010/03/20 PHP
php数组函数序列之in_array() 查找数组值是否存在
2011/10/29 PHP
使用php实现截取指定长度
2013/08/06 PHP
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
2014/06/06 PHP
PHP实现cookie跨域session共享的方法分析
2019/08/23 PHP
点击广告后才能获得下载地址
2006/10/26 Javascript
Extjs学习笔记之五 一个小细节renderTo和applyTo的区别
2010/01/07 Javascript
JavaScript 滚轮事件使用说明
2010/03/07 Javascript
基于jQuery实现左右div自适应高度完全相同的代码
2012/08/09 Javascript
jquery修改属性值实例代码(设置属性值)
2014/01/06 Javascript
基于NodeJS的前后端分离的思考与实践(五)多终端适配
2014/09/26 NodeJs
JS实现网页滚动条感应鼠标变色的方法
2015/02/26 Javascript
QQ登录背景闪动效果附效果演示源码下载
2015/09/22 Javascript
如何在Linux上安装Node.js
2016/04/01 Javascript
解决AngualrJS页面刷新导致异常显示问题
2017/04/20 Javascript
详解webpack分离css单独打包
2017/06/21 Javascript
JQuery表单元素取值赋值方法总结
2020/05/12 jQuery
如何手动实现一个 JavaScript 模块执行器
2020/10/16 Javascript
python 中的list和array的不同之处及转换问题
2018/03/13 Python
基于DataFrame改变列类型的方法
2018/07/25 Python
浅谈Python爬虫基本套路
2019/03/25 Python
【python】matplotlib动态显示详解
2019/04/11 Python
Python之pymysql的使用小结
2019/07/01 Python
python实现高斯投影正反算方式
2020/01/17 Python
python环境下安装opencv库的方法
2020/03/05 Python
python操作ini类型配置文件的实例教程
2020/10/30 Python
英国领先的维生素和补充剂品牌:Higher Nature
2019/08/26 全球购物
Delphi软件工程师试题
2013/01/29 面试题
会计毕业生求职简历的自我评价
2013/10/20 职场文书
自我评价个人范文
2013/12/16 职场文书
国窖1573广告词
2014/03/21 职场文书
报告会主持词
2014/04/02 职场文书
法人委托书的范本格式
2014/09/11 职场文书
2015年学校消防安全工作总结
2015/10/14 职场文书
三严三实·严以律己心得体会
2016/01/13 职场文书
浅谈python中的多态
2021/06/15 Python