已安装mysql数据库;
检查php环境是否已开启mysql扩展(一般情况下是开启的);
检查方法:a.使用phpinfo()函数,看有没有mysql项;b.打开php.ini文件,检查php_mysql.dll前分号是否已取掉。
php链接代码如下:
<?php
//设置编码格式
header("Content-type:text/htmlcharset=utf-8")
//定义数据库主机地址
$host="localhost"
//定义mysql数据库登录用户名
$user="root"
//定义mysql数据库登录密码
$pwd=""
//链接数据库
$conn = mysql_connect($host,$user,$pwd)
//对连接进行判断
if(!$conn){
die("数据库连接失败!".mysql_errno())
}else{
echo "数据库连接成功!"
}
?>
连接到一个 MySQL 数据库在您能够访问并处理数据库中的数据之前,您必须创建到达数据库的连接。
在 PHP 中,这个任务通过 mysql_connect() 函数完成。
语法
mysql_connect(servername,username,password)
参数
描述
servername可选。规定要连接的服务器。默认是 "localhost:3306"。
username可选。规定登录所使用的用户名。默认值是拥有服务器进程的用户的名称。
password可选。规定登录所用的密码。默认是 ""。
这篇文章主要介绍了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]
?>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)