MysqL采用的是'客户机/服务器'架构。使用PHP安装的MysqL扩展函数,和直接使用客户端软件区访问MysqL数据库服务器,原理一样,都需要向MysqL管理系统发送sql命令,然后将结果返回给用户。
在PHP中,sql分为两类(查看sql语句分类):一是有返回结果集的DQL语句,如select/desc 表名,执行完毕之后,需要PHP处理结果集;二是没有结果集的,如DML、DDL等,但是DML语句执行成功后对数据表的记录有影响。
0){//MysqL_insert_id()返回最后一条新纪录的auto_increment值echo '插入数据成功'.MysqL_insert_id().'
';}else{echo '插入数据失败,错误号:'.MysqL_errno().'错误信息:'.MysqL_error().'
';}//关闭连接MysqL_close($link);?>
在PHP中执行select语句返回一个结果集,可以用于对各个字段的处理
MysqL_query('select * from test');//获取记录行的个数$rows = MysqL_num_rows($result);//获取字段个数,即数据列$cols = MysqL_num_fields($result);
如果需要访问结果集中的数据,可以使用下列四个函数中的一个(均以结果集资源符作为参数,并自动返回下一条记录,在表末尾时返回false)
1、MysqL_fetch_row():该函数将一条结果记录返回并以一个普通的索引数据保存
2、MysqL_fetch_assoc():从结果集中取得一行作为关联数据保存
3、MysqL_fetch_array():从结果集中取得一行作为关联数组,或数字数组,或二者兼有。可以使用MysqL_ASSOC(关联数组形式)、MysqL_NUM(索引数组形式)和MysqL_BOTH作为第二个参数,指定返回的数据形态。
4、MysqL_fetch_object():从结果集中取得一行作为对象,各个字段以对象方式访问。
建议:没有特殊要求,不要使用MysqL_fetch_array(),可以使用MysqL_fetch_row()或者MysqL_fetch_assoc()实现同样的功能,且效率高。
另外也有三个与结果集相关的常用函数
5、MysqL_data_seek(int $num):移动内部结果的指针,$num是想要设定的新的结果集指针的行数。
6、MysqL_fetch_lengths(resource ):取得结果集中每个输出的长度
7、MysqL_result(resource ,int
):返回 MysqL 结果集中一个单元的内容。字段参数可以是字段的偏移量或者字段名,或者是字段表点字段名(tablename.fieldname)。如果给列起了别名('select foo as bar from…'),则用别名替代列名。调用 MysqL_result()不能和其它处理结果集的函数混合调用。