php服务器怎么设置两个数据库,PHP同时连接多个mysql数据
库⽰例代码
实例:
复制代码 代码如下:
$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 ] )
php远程连接mysql数据库向与指定的连接标识符关联的服务器中的当前活动数据库发送⼀条查询。如果没有指定 link_identifier,则使⽤上⼀个打开的连接。如果没有打开的连接,本函数会尝试⽆参数调⽤ mysql_connect() 函数来建⽴⼀个连接并使⽤之。查询结果会被缓存。
在本例中由于没有指定link_identifier,所以,在执⾏第⼀条sql时,默认使⽤的是上⼀个打开的链接,即$conn2,⽽实际上第⼀条sql语句应该使⽤的是$conn1,所以导致报错,所以为了能够链接多个mysql数据库,可以使⽤如下⽅法:
⽅法1:在mysql_query函数中指定所⽤连接,即:
复制代码 代码如下:
$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的第⼆个参数,即:复制代码 代码如下:
$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];
>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论