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 相关文章推荐
桌面中心(三)修改数据库
Oct 09 PHP
PHP超级全局变量数组小结
Oct 04 PHP
浅析php面向对象public private protected 访问修饰符
Jun 30 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
Jan 17 PHP
PHP程序员基本要求和必备技能
May 09 PHP
php 使用curl模拟登录人人(校内)网的简单实例
Jun 06 PHP
php 使用html5实现多文件上传实例
Oct 24 PHP
PHP AjaxForm提交图片上传并显示图片源码
Nov 29 PHP
php指定长度分割字符串str_split函数用法示例
Jan 30 PHP
php 二维数组快速排序算法的实现代码
Oct 17 PHP
laravel框架邮箱认证实现方法详解
Nov 22 PHP
Apache+PHP+MySQL搭建PHP开发环境图文教程
Aug 06 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 简单日历实现代码
2009/10/28 PHP
PHP 柱状图实现代码
2009/12/04 PHP
php判断电脑访问、手机访问的例子
2014/05/10 PHP
PHP实现模仿socket请求返回页面的方法
2014/11/04 PHP
深入探究PHP的多进程编程方法
2015/08/18 PHP
twig模板获取全局变量的方法
2016/02/05 PHP
jQuery 操作XML入门
2008/12/25 Javascript
5款Javascript颜色选择器
2009/10/25 Javascript
用js将内容复制到剪贴板兼容浏览器
2014/03/18 Javascript
教你用AngularJS框架一行JS代码实现控件验证效果
2014/06/23 Javascript
js实现下拉框选择要显示图片的方法
2015/02/16 Javascript
javascript动态创建表格及添加数据实例详解
2015/05/13 Javascript
nodejs 中模拟实现 emmiter 自定义事件
2016/02/22 NodeJs
JavaScript算法系列之快速排序(Quicksort)算法实例详解
2016/09/04 Javascript
利用prop-types第三方库对组件的props中的变量进行类型检测
2017/05/02 Javascript
vue实现点击展开点击收起效果
2018/04/27 Javascript
node实现简单的增删改查接口实例代码
2019/08/22 Javascript
JavaScript对象访问器Getter及Setter原理解析
2020/12/08 Javascript
[01:45]亚洲邀请赛互动指南虚拟物品介绍
2015/01/30 DOTA
python输出当前目录下index.html文件路径的方法
2015/04/28 Python
pycharm远程调试openstack代码
2017/11/21 Python
如何在Django项目中引入静态文件
2019/07/26 Python
python爬虫selenium和phantomJs使用方法解析
2019/08/08 Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
2020/05/22 Python
Opencv常见图像格式Data Type及代码实例
2020/11/02 Python
中国最大的团购网站:聚划算
2016/09/21 全球购物
生物制药专业自我鉴定
2014/02/19 职场文书
暑期社会实践心得体会
2014/09/02 职场文书
教师个人年度总结
2015/02/11 职场文书
证券区域经理岗位职责
2015/04/10 职场文书
民事诉讼答辩状范文
2015/05/21 职场文书
2015年秋季小班开学寄语
2015/05/27 职场文书
小学校本教研总结
2015/08/13 职场文书
Python 把两层列表展开平铺成一层(5种实现方式)
2021/04/07 Python
用Python生成会跳舞的美女
2022/01/18 Python
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers