扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
只能连接一个库,库里面可以有多张表。
成都创新互联公司成立与2013年,是专业互联网技术服务公司,拥有项目成都做网站、成都网站制作、成都外贸网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元澄海做网站,已为上家服务,为澄海各地企业和个人服务,联系电话:028-86922220
我是弄IOS的,所以在这些方面我比较熟。
?php
$link_A=mysql_connect("localhost:917","root","skcg1024",true);
mysql_select_db("db_a",$link_A);
$link_B=mysql_connect("localhost:917","root","skcg1024",true);
mysql_select_db("db_a",$link_B);
print_r($link_A);
print_r($link_B);
mysql_connect的第四个参数设置成true,表示创建一个新的连接
这样你就获得咯两个数据库连接,然后指定对应的数据库即可。但不建议这么做
建议采用数据库.数据表的格式 访问存储数据,代码简练,逻辑清楚
这篇文章主要介绍了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];
?
实例化两条sql链接.例如 $wdb = mysql_connect('localhost','root','123456','a1');//负责写入的数据库$rdb = mysql_connect('192.168.xx.xx','root','123456','a2');//负责读的数据库这样就可以链接两个数据库了。
$conn1=mysql_connect('...','...','...'); //将第一个数据库连接资源保存到变量conn1中
$conn2=mysql_connect('...','...','...'); //将第二个数据库连接资源保存到变量conn2中
然后在执行查询操作时,指定使用哪个连接资源,如:mysql_query('select ....',$conn1);
希望可以帮到你,谢谢!
1、onfig.php文件
'LOAD_EXT_CONFIG'
='db,db_config',
//
加载扩展
配置文件
。多个文件用逗号分隔
//其中db.php中放置的是mysql的配置
//db_config放置的是
sqlserver
的配置
2、其中db.php内容如下
return
array(
'DB_TYPE'='mysql',
'DB_HOST'='
localhost
',
'DB_NAME'='your_mysql_dbname',
'DB_USER'='your_mysql_user_name',
'DB_PWD'='123456',
'DB_PORT'='3306',
'DB_PREFIX'='',
);
db_config.php内容如下
return
array(
'DB_CONFIG1'
=
array(
'db_type'
=
'pdo',
'db_user'
=
'XX',
'db_pwd'
=
'XXXXXXXX',
'DB_DSN'
=
'sqlsrv:Server=XXXXXX;Database=XXXX',
),
);
3、在Lib/Model下新建一个专门的模型
class
SqlsrvModel
extends
Model
{
protected
$
connection
=
'DB_CONFIG1';
}
4、可以在Action
中调
各个模型了
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流