十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
实例化两条sql链接.
10年的昭化网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整昭化建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“昭化网站设计”,“昭化网站推广”以来,每个客户项目都认真落实执行。
例如
$wdb = mysql_connect('localhost','root','123456','a1');//负责写入的数据库
$rdb = mysql_connect('192.168.xx.xx','root','123456','a2');//负责读的数据库
这样就可以链接两个数据库了。
程序开始建立两个数据库连接,函数mysql_query()原型:
resource mysql_query ( string $query [, resource $link_identifier ] )
方法1:在mysql_query函数中指定所用连接,即:
方法2:在sql语句中关联所用数据库,此时可以省略mysql_query的第二个参数,即:
只能连接一个库,库里面可以有多张表。
我是弄IOS的,所以在这些方面我比较熟。
这篇文章主要介绍了PHP同时连接多个mysql数据库的具体实现,需要的朋友可以参考下
实例:
代码如下:
?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];
?
$conn1=mysql_connect('...','...','...'); //将第一个数据库连接资源保存到变量conn1中
$conn2=mysql_connect('...','...','...'); //将第二个数据库连接资源保存到变量conn2中
然后在执行查询操作时,指定使用哪个连接资源,如:mysql_query('select ....',$conn1);
希望可以帮到你,谢谢!
应该是这样的
$conb=mysql_connect("localhost","root","")or die("mysql连接失败");
$cont=mysql_connect("localhost","root","", true)or die("mysql连接失败");
第四个参数true/false表示是否开启一个新的连接,默认是false
好了,现在它们连接到不同的数据库咯