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 4.2书写安全的脚本
Oct 09 PHP
打造计数器DIY三步曲(中)
Oct 09 PHP
PHP中文URL编解码(urlencode()rawurlencode()
Jul 03 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
Jul 29 PHP
php站内搜索关键词变亮的实现方法
Dec 30 PHP
php ImageMagick windows下安装教程
Jan 26 PHP
利用PHP fsockopen 模拟POST/GET传送数据的方法
Sep 22 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
Oct 22 PHP
浅析PHP中的i++与++i的区别及效率
Jun 15 PHP
php简单截取字符串代码示例
Oct 19 PHP
php 读取文件夹下所有图片、文件的实例
Oct 17 PHP
PHP tp5中使用原生sql查询代码实例
Oct 28 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
WordPress中转义HTML与过滤链接的相关PHP函数使用解析
2015/12/22 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
2017/05/12 PHP
PHP常用日期加减计算方法实例小结
2018/07/31 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
2020/04/13 PHP
PHP Pipeline 实现中间件的示例代码
2020/04/26 PHP
jQuery标签编辑插件Tagit使用指南
2015/04/21 Javascript
Javascript中判断对象是否为空
2015/06/10 Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
2016/04/29 Javascript
jQuery中队列queue()函数的实例教程
2016/05/03 Javascript
Javascript在IE和Firefox浏览器常见兼容性问题总结
2016/08/03 Javascript
纯js模仿windows系统日历
2017/02/04 Javascript
js+html制作简单验证码
2017/02/16 Javascript
JS实现给json数组动态赋值的方法示例
2020/03/19 Javascript
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
详解Vue源码之数据的代理访问
2018/12/11 Javascript
JS面向对象之单选框实现
2020/01/17 Javascript
小程序实现背景音乐播放和暂停
2020/06/19 Javascript
eslint+prettier统一代码风格的实现方法
2020/07/22 Javascript
vue键盘事件点击事件加native操作
2020/07/27 Javascript
[01:12](回顾)DOTA2国际邀请赛,全世界DOTAer的盛宴
2014/07/01 DOTA
python音频处理用到的操作的示例代码
2017/10/27 Python
Python实现采用进度条实时显示处理进度的方法
2017/12/19 Python
使用python实现抓取腾讯视频所有电影的爬虫
2019/04/15 Python
python图片二值化提高识别率代码实例
2019/08/24 Python
django创建超级用户过程解析
2019/09/18 Python
Python API len函数操作过程解析
2020/03/05 Python
详解python定时简单爬取网页新闻存入数据库并发送邮件
2020/11/27 Python
numba提升python运行速度的实例方法
2021/01/25 Python
Html5移动端适配IphoneX等机型的方法
2019/06/25 HTML / CSS
用JAVA实现一种排序,JAVA类实现序列化的方法(二种)
2014/04/23 面试题
儿科护士实习自我鉴定
2013/10/17 职场文书
2013年高中生自我评价
2013/10/23 职场文书
班级寄语大全
2014/04/10 职场文书
创先争优活动党员公开承诺书
2014/08/29 职场文书
独生子女证明范本
2015/06/19 职场文书
HTML+CSS制作心跳特效的实现
2021/05/26 HTML / CSS