一、PHP连接MySQL服务器
什么是PHP的MySQL函数库?
即一套PHP的函数库扩展包,在PHP文件下的“ext/php_mysql.dll”
配置PHP作为MySQL服务器的客户端:
PHP配置文件php.ini中开启“extension=php_mysql.dll”
二、PHP操作MySQL的函数库步骤
①连接数据库服务器
mysql_connect 打开一个连接(推荐)
mysql_pconnect 打开一个持久连接(不推荐)
mysql_connect("$host","$username","$password");
连接成功返回MySQL连接标识符,连接失败返回false
例:
$link=mysql_connect("localhost","root","1234");
②判断是否连接成功
if(!$link){
exit("数据库服务器连接失败,错误信息:".mysql_error()."错误号:".mysql_errno());
}
mysql_error():返回上一步操作的错误信息
mysql_errno():返回上一步操作的错误号
③设置客户端字符集
mysql_set_charset("utf8");
mysql_query("set names utf8");
④选择数据库
$db=mysql_select_db("$db_name" [,$link]);
打开所连接的数据库服务器中的指定数据库,若不指定第二个连接参数,则默认打开最近的连接,成功返回true,失败返回false
⑤准备SQL语句
$sql="SQL语句";
注:引号中的SQL语句无需以分号结束
⑥发送SQL语句
$res=mysql_query($sql [,$link]);
对于DQL查询语句(select/explain/show/desc/describe)执行成功返回结果集资源,执行失败返回false;对于其他类型的sql语句,执行成功返回true,执行失败返回false
⑦处理结果
if(!$res){
echo "执行失败,错误信息:".mysql_error();
}else{
echo "执行成功";
}
mysql_insert_id([$link]):获取主键ID,即auto_increment的值
mysql_affected_rows([$link]):获取受影响数据条数(适用于增、删、改)
mysql_num_rows($res):获取DQL查询语句返回的结果集资源包含的数据条数
mysql_fetch_array($res [,MYSQL_BOTH]):将结果集资源解析成索引和关联的混合数组
MYSQL_BOTH:可选参数,默认值,MYSQL_BOTH将得到一个同时包含索引和关联的混合数组;MYSQL_ASSOC将只得到一个关联数组,字段名作为键名字段值作为键值,作用同mysql_fetch_assoc();MYSQL_NUM将只得到一个索引数组,作用同mysql_fetch_row();
mysql_fetch_row($res):将结果集资源解析成索引数组
mysql_fetch_assoc($res):将结果集资源解析成关联数组,字段名作为键名字段值作为键值
mysql_fetch_object($res):将结果集资源解析成对象
⑧关闭数据库连接
mysql_free_result($res); 释放DQL查询语句的关联结果集资源
mysql_close();
例1:
$link=mysql_connect("localhost","root",""); if(!$link){ exit("连接MySQL服务器失败,错误信息为:".mysql_error()."错误号为:".mysql_errno()); } mysql_set_charset("utf8"); $db=mysql_select_db("test01"); if(!$db){ exit("连接数据库失败,错误信息为:".mysql_error()."错误号为:".mysql_errno()); } $sql="insert users(username,password,sex) values('autumn','1111',null)"; $res=mysql_query($sql); if($res && mysql_affected_rows()>0){ echo "成功添加了".mysql_affected_rows()."条数据"; }else{ echo "添加数据失败,错误信息为:".mysql_error()."错误号为:".mysql_errno(); } mysql_close();
例2:
$link=mysql_connect("localhost","root","") or die("连接数据库服务器失败,错误信息为:".mysql_error()."错误号为:".mysql_errno()); mysql_set_charset("utf8"); $db=mysql_select_db("test01",$link) or die("连接数据库失败,错误信息为:".mysql_error()."错误号为:".mysql_errno()); $sql="select * from users"; $res=mysql_query($sql,$link); if(!$res){ echo "查询数据失败,错误信息为:".mysql_error()."错误号为:".mysql_errno(); }elseif(mysql_num_rows($res)==0){ echo "当前数据表中无数据"; }else{ echo "<table border='1' width='800'>"; echo "<tr>"; echo "<td>id</td>"; echo "<td>username</td>"; echo "<td>password</td>"; echo "<td>sex</td>"; echo "</tr>"; while($data=mysql_fetch_assoc($res)){ echo "<tr>"; echo "<td>".$data['id']."</td>"; echo "<td>".$data['username']."</td>"; echo "<td>".$data['password']."</td>"; echo "<td>".$data['sex']."</td>"; echo "</tr>"; } echo "</table>"; } echo "<br>"; echo "共查询到".mysql_num_rows($res)."条数据"; mysql_free_result($res); mysql_close();