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 相关文章推荐
thinkphp 一个页面使用2次分页的实现方法
Jul 15 PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
Mar 25 PHP
ThinkPHP缓存方法S()概述
Jun 13 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
Mar 25 PHP
php正则preg_replace_callback函数用法实例
Jun 01 PHP
PHP实现对png图像进行缩放的方法(支持透明背景)
Jul 15 PHP
浅析Yii2 gridview实现批量删除教程
Apr 22 PHP
php中文字符串截取多种方法汇总
Oct 06 PHP
如何使用php等比例缩放图片
Oct 12 PHP
php 二维数组时间排序实现代码
Nov 19 PHP
PHP简单实现记录网站访问量功能示例
Jun 06 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
Jun 03 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世纪万年历
2006/12/06 PHP
php 面向对象的一个例子
2011/04/12 PHP
php中的PHP_EOL换行符详细解析
2013/10/26 PHP
php命令行用法入门实例教程
2014/10/27 PHP
Yii数据读取与跳转参数传递用法实例分析
2016/07/12 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
jQuery源码分析-03构造jQuery对象-工具函数
2011/11/14 Javascript
JavaScript实现GriwView单列全选(自写代码)
2013/05/13 Javascript
jQuery中hide()方法用法实例
2014/12/24 Javascript
jQuery短信验证倒计时功能实现方法详解
2016/05/25 Javascript
jquery表单插件form使用方法详解
2017/01/20 Javascript
Vue实现百度下拉提示搜索功能
2017/06/21 Javascript
Angular4自制一个市县二级联动组件示例
2017/11/21 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
[02:41]DOTA2英雄基础教程 亚巴顿
2014/01/02 DOTA
[02:31]2014DOTA2国际邀请赛2009专访:干爹表现出乎意料 看好DK杀回决赛
2014/07/20 DOTA
[01:07:13]TNC vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python排序搜索基本算法之冒泡排序实例分析
2017/12/09 Python
Python批量合并有合并单元格的Excel文件详解
2018/04/05 Python
python引入不同文件夹下的自定义模块方法
2018/10/27 Python
python中aioysql(异步操作MySQL)的方法
2019/04/11 Python
PyQt5多线程刷新界面防假死示例
2019/12/13 Python
VScode连接远程服务器上的jupyter notebook的实现
2020/04/23 Python
Python3 requests模块如何模仿浏览器及代理
2020/06/15 Python
Python3如何实现Win10桌面自动切换
2020/08/11 Python
工程造价自荐信
2013/10/09 职场文书
综合办公室个人的自我评价
2013/12/22 职场文书
学校党委副书记个人对照检查材料思想汇报
2014/09/28 职场文书
成都人事代理协议书
2014/10/25 职场文书
2014年林业工作总结
2014/12/05 职场文书
2015年安全生产月活动总结
2015/03/26 职场文书
结婚堵门保证书
2015/05/08 职场文书
2016年教育局“我们的节日——端午节”主题活动总结
2016/04/01 职场文书
2019年朋友圈经典励志语录50条
2019/07/05 职场文书
Python编写可视化界面的全过程(Python+PyCharm+PyQt)
2021/05/17 Python
Python趣味爬虫之用Python实现智慧校园一键评教
2021/05/28 Python