7) 数据库信息函数(2个): 1、mysql_fetch_field() 格式:object mysql_fetch_field(int query , int [field_offset]); 返回1个对象,即一哈希表,下标有: table : 表名 name : 字段名 max_length : 该字段的最大长度 not_null : 字段为not null则返回1,否则返回0 primary_key : 字段为primary key则返回1,否则返回0 unique_key : 字段为unique key则返回1,否则返回0 multiple_key : 字段为非unique key则返回1,否则返回0 numeric : 字段为numeric则返回1,否则返回0 blob : 字段为blob则返回1,否则返回0 type : 字段的类型 unsigned : 字段为unsigned则返回1,否则返回0 zerofill : 字段为zero filled则返回1,否则返回0 引用格式为:对象名->下标名 使用此函数可以得到表名、字段名、类型....... 例子: $query = mysql_query($sql , $connect); while($object = mysql_fetch_field($query)) { echo "table name : ".$object->table." "; echo "field name : ".$object->name." "; echo "primary key : ".$object->primary_key." "; echo "not null : ".$object->not_null." "; echo "field type : ".$object->type." "; echo "field max length : ".$object->max_length." "; } ?> Note : 哈希表的是从0坐标开始的,即第一个字段为哈希表中的0项。 如果我们想直接得到哈希表的第三项即第三个字段的信息,可用如下格式: $query = mysql_query($sql , $connect); $object = mysql_fetch_field($query , 2); echo "table name : ".$object->table." "; echo "field name : ".$object->name." "; echo "primary key : ".$object->primary_key." "; echo "not null : ".$object->not_null." "; echo "field type : ".$object->type." "; echo "field max length : ".$object->max_length." "; ?> 其实这也可以通过下面这个函数来达到同样的目的。 2、mysql_field_seek() 格式:int mysql_field_seek(int $query , int field_offset); 将游标移到指定的字段上。 例子: $query = mysql_query($sql , $connect); $seek = mysql_field_seek($query , 2); $object = mysql_fetch_field($query); echo "table name : ".$object->table." "; echo "field name : ".$object->name." "; echo "primary key : ".$object->primary_key." "; echo "not null : ".$object->not_null." "; echo "field type : ".$object->type." "; echo "field max length : ".$object->max_length." "; ?> 这样也达到与上例同样的要求。 8) 取数据库名和表名(2个): 1、mysql_list_dbs() 格式: int mysql_list_dbs(int link_identifier); 取得所有可用的数据库名(database name)。 例子: $connect = mysql_connect($host , $usr ,$pwd); $dbs = mysql_list_dbs($connect); $rows = mysql_num_rows($dbs); echo "database total : ".$rows; $i = 0; while($i<$rows) { $db_name[$i] = mysql_tablename($dbs , $i); echo $db_name[$i]; $i++; } ?> 即可依次显示出MySQL中所有的数据库名字(database name )。 Note : 相当于MySQL中的 show databases命令 2、mysql_list_tables() 格式:int mysql_list_tables(string database name); 显示该数据库下所有的表的名字Table name。 例子: $connect = mysql_connect($host , $usr , $pwd); $tables = mysql_list_tables("mysql"); $rows = mysql_num_rows($tables); echo "Table total : ".$rows; $i = 0; while($i<$rows) { $table_name[$i] = mysql_tablename($tables , $i); echo $table_name[$i]; $i++; } ?> 即可依次显示出mysql下所有的表的名字 Note : 相当于MySQL中的 show tables命令(先要用 use mysql命令选中1个数据库) 转载:www.chinaphp.com |