利用php列出mysql的数据表及字段主要运用两个函数:mysql_list_tables()、mysql_fetch_field()
mysql_list_tables()主要用于列出数据库中的表,原型为:
//输入的参数为数据库名 resource mysql_list_tables ( string $database [, resource $link_identifier ] )
mysql_fetch_field()主要用于列出数据表中字段的各种属性,原型为:
//输入的参数为mysql_query返回的句柄 object mysql_fetch_field ( resource $result [, int $field_offset ] )
返回的对象有一下属性:
- 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
以下为实际例子:
1 <?php 2 3 //查询的数据库名为mysql 4 $dbname = 'mysql'; 5 6 //创建数据库连接 7 mysql_connect('localhost', 'root', ''); 8 9 //选择数据库 10 mysql_select_db($dbname); 11 12 //列出该数据库的所有表 13 $result1 = @mysql_list_tables($dbname); 14 15 //遍历数据集,获取具体的数据表 16 while($tables = mysql_fetch_row($result1)){ 17 echo "数据表: $tables[0]<br>"; 18 echo '字段:<br>'; 19 $sql = 'select * from '.$tables[0]; 20 $result2 = mysql_query($sql); 21 //遍历mysql_query查询出来的数据集,获取每个表的字段信息 22 while($property = mysql_fetch_field($result2)){ 23 //打印该字段的名字 24 echo $property->name.'<br>'; 25 } 26 echo '******************************<br>'; 27 } 28 ?>
通过以上代码可以返回mysql数据库中的表名和字段名