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); // 里面放的是链接资源,通常是释放连接的数据库
相关文章推荐
- 【PHP】mysql基本操作整合
- php练习
- 配置NFS+TFTP+BOOTP
- SFTP 例子
- thinkphp U 方法加密传参数
- Phpstorm 调试ThinkPHP项目
- php实现验证码的破解
- 理解PHP中会话控制
- getContextPath和getRealPath的区别
- php头函数和浏览器缓存
- php作用域限定符
- laravel打印sql
- PHP中的资源类型
- 新开发的体重管理项目----用纯php模仿yii2框架建立的
- Php ArrayIterator的几个常用方法
- PHP常用函数记录【不定期整理】
- php读取csv的问题
- 使用PhpMysql实现图片文件上传下载
- php使用滑块验证码(极验验证)
- FTP文件传输协议两种模式 ftp协议集,错误码集,ftp客户端命令集