您的位置:首页 > 编程语言 > PHP开发

PHP操作MYSQL服务器

2016-01-14 12:02 731 查看

PHP操作mysql服务器

php作为mysql服务器的客户端!

 执行的话一般分为下面的四个大致步骤:

连接认证

 

发送sql

         执行sql,生成结果(mysql-server)

处理结果

 

关闭连接

1.连接认证

mysql_connect()
数据库的连接
$host = "localhost";
$post = "3306";
$user = "root";
$pass = "123654";

if(!$link = mysql_connect("$host:$post",$user,$pass)){
die("连接失败");
}
如果成功的话$result里面保存的是结果集是资源类型(对资源类型不太理解,请看上一篇博客),失败的话保存的是false;

2.向mysql服务器发送sql

mysql_query();
失败返回false,成功返回true或者资源;
可以使用mysql_errno(链接)和mysql_error(链接)来获得错误信息和标识;
mysql_select_db("test");    //选择默认数据库
$sql = 'select * from stu where 1';
if(!$result = mysql_query($sql)){
echo "sql语句执行失败",$sql.'</br>';
echo "错误代码".mysql_errno($link),'<br>';
echo "错误信息".mysql_error($link).'<br>';
}


3.返回处理数据

执行成功后:返回数据可以是资源也可以true。执行失败一定是false!

依据所执行的 sql,是否有返回数据!

返回资源:有返回数据:select,show,desc。

返回true:没有返回数据的: use,set,insert,update,delete,DDL

3.2处理返回资源



这样的结果称之为结果集(result set)类型资源;
结果集:结果的集合;
将数据从结果集中取出来称之为fetch,
使用函数
mysql_fetch_assoc|row|array。功能完全一致,只是返回的数据格式不同!

前面两个能用第三个来实现,因为前面两个是一个参数,第三个有两个参数

/**
*@param mysql_fetch_array 从结果集中取出第一条记录的数组 一个参数是结果集,第二个参数可以有三个常量供选择
* 如果用了 MYSQL_BOTH,将得到一个同时包含关联和数字索引的数组。用 MYSQL_ASSOC 只得到关联索引(如同 mysql_fetch_assoc() 那样),
* 用 MYSQL_NUM 只得到数字索引(如同 mysql_fetch_row() 那样),默认的 情况是第一种MYSQL_BOTH ;
**/
// var_dump(mysql_fetch_array($result,MYSQL_ASSOC)) ;
// var_dump(is_resource($result)) ;//判断是不是资源类型
/**
*@param mysql_num_fields 里面有一个参数,是资源变量 获取该资源变量的所有的条数
**/
//var_dump(mysql_num_fields($result));
/**
*@param mysql_fetch_field 可以用来从某个查询结果中取得字段的信息。如果没有指定字段偏移量,则下一个尚未被 mysql_fetch_field() 取得的字段被提取。
*@return name - 列名
*table - 该列所在的表名
*max_length - 该列最大长度
*not_null - 1,如果该列不能为 NULL
*primary_key - 1,如果该列是 primary key
*unique_key - 1,如果该列是 unique key
*multiple_key - 1,如果该列是 non-unique key
*numeric - 1,如果该列是 numeric
*blob - 1,如果该列是 BLOB
*type - 该列的类型
*unsigned - 1,如果该列是无符号数
*zerofill - 1,如果该列是 zero-filled
*var_dump(mysql_fetch_field($result));
**/mysql_fetch_row()显示如下



mysql_fetch_assoc()显示如下:



mysql_fetch_array() 显示如下:默认的是both的  也就是上面两种混合的 也可以给第二个参数传递参数就可以变为相应的了



特别注意:

任何有结果的sql操作,返回的都是结果集!

结果集,就是一个二维表的结构!是一行行的记录组成!

即使,结果集中只有一条记录

我们只需要返回一条数据!

4.释放资源

mysql_free_result($result);  //里面是结果集 释放结果集的意思
mysql_close($link);    // 里面放的是链接资源,通常是释放连接的数据库
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: