本文介绍下,php中对mysql数据库进行查询的一些方法,及之间的区别,有需要的朋友,参考下吧。
php操作mysql步骤: 1,$connect=mysql_connect('localhost','root','123456') or die('数据库连接失败。'mysql_error());链接mysql。 2,mysql_select_db('database',$connect)选择链接的数据库。 3,mysql_query('Set names gb2312'); $sql = "select * from blog_article";准备要查询的数据。 4,$datas = mysql_query($sql);执行sql查询。 5,$data = mysql_fetch_assoc($datas)得到查询到的缓存在内存中的一条数据。 6,print_r($data);相同点:三个函数都是返回数据库中查询到的一行数据(说的再清楚点就是一条数据)。 不同点:mysql_fetch_assoc()用的是数据库中相应的字段名作为的key值(也就是数组下标)如:filed['id']=1; mysql_fetch_row()用的是自动生成的数字(从0开始依次生成)作为的key值(也就是数组下标)如:filed[0]=1; mysql_fetch_array()用的是自动生成的数字(从0开始依次生成)作为的key值(也就是数组下标),而且它还同时生成数据库中相应的字段名作为的key值(也就是数组下标)如: filed[0]=1,filed['id']=1;也就是说,mysql_fetch_array()将mysql_fetch_assoc()和mysql_fetch_row()查询到的结果合为一体。 mysql_fetch_object()与mysql_fetch_assoc()差不多。 只是mysql_fetch_assoc()返回的是数组。mysql_fetch_object()返回的是object对象。 mysql_insert_id() 取得上一步 INSERT 操作产生的 ID。 mysql_result() 函数返回结果集中一个字段的值。 mysql_num_fields() 函数返回结果集中字段的数目。 mysql_affected_rows();返回前一次 MySQL 操作所影响的记录行数。 mysql_num_rows(mysql_query($sql))获得结果集中行的数目。 mysql_pconnect() 函数打开一个到 MySQL 服务器的持久连接。 mysql_pconnect() 和 mysql_connect() 非常相似,主要区别: 1. 当连接的时候本函数将先尝试寻找一个在同一个主机上用同样的用户名和密码已经打开的(持久)连接,如果找到,则返回此连接标识而不打开新连接。 2. 其次,当脚本执行完毕后到 SQL 服务器的连接不会被关闭,此连接将保持打开以备以后使用(mysql_close() 不会关闭由 mysql_pconnect() 建立的连接)。 mysql_data_seek(mysql_query($sql),8);获得结果集中的第8条数据。 (mysql_num_rows(mysql_query($sql))和mysql_data_seek(mysql_query($sql),8)在mysql_unbuffered_query($sql)不可以使用。) mysql_unbuffered_query($sql)和mysql_query($sql)效果差不多,但是mysql_unbuffered_query($sql)不缓存。mysql_query($sql)会缓存查询的结果。 mysql_close();关闭mysql的最近的链接。 mysql_field_flags(mysql_query($sql),6)返回第六个字段的表属性输出如:not_null 。 primary_key auto_increment 。 mysql_fetch_lengths(mysql_query($sql))返回该条数据的所有字段的每个字段的长度。返回的是一个数字组成的数组。 mysql_field_name(mysql_query($sql),3)返回第三个字段的字段名。 mysql_field_table(mysql_query($sql),0)返回指定字段所在的表名。 mysql_free_result(mysql_query($sql)) 函数释放结果内存。 mysql_get_client_info() 函数返回 MySQL 客户端信息。 mysql_get_host_info() 取得 MySQL 主机信息。 |