PHP获取mysql数据表的字段名称和详细信息的方法
首先我们需要了解下查询MySQL数据库/表相关信息的SQL语句:
SHOWDATABASES //列出MySQLServer数据库。 SHOWTABLES[FROMdb_name] //列出数据库数据表。 SHOWCREATETABLEStbl_name //导出数据表结构。 SHOWTABLESTATUS[FROMdb_name] //列出数据表及表状态信息。 SHOWCOLUMNSFROMtbl_name[FROMdb_name] //列出资料表字段 SHOWFIELDSFROMtbl_name[FROMdb_name],DESCRIBEtbl_name[col_name]。 SHOWFULLCOLUMNSFROMtbl_name[FROMdb_name]//列出字段及详情 SHOWFULLFIELDSFROMtbl_name[FROMdb_name]//列出字段完整属性 SHOWINDEXFROMtbl_name[FROMdb_name] //列出表索引。 SHOWSTATUS //列出DBServer状态。 SHOWVARIABLES //列出MySQL系统环境变量。 SHOWPROCESSLIST //列出执行命令。 SHOWGRANTSFORuser //列出某用户权限
由上述SQL语句可以看到,我们可以使用SHOWFULLCOLUMNS来列出字段及详情信息,示例代码:
$rescolumns=mysql_query("SHOWFULLCOLUMNSFROM".TB_NAME.""); while($row=mysql_fetch_array($rescolumns)){ // echo'字段名称:'.$row['Field'].'-数据类型:'.$row['Type'].'-注释:'.$row['Comment']; // echo'<br/><br/>'; print_r($row); }
打印结果:
Array([0]=>id[Field]=>id[1]=>char(2)[Type]=>char(2)[2]=>utf8_general_ci[Collation]=>utf8_general_ci[3]=>NO[Null]=>NO[4]=>PRI[Key]=>PRI[5]=>[Default]=>[6]=>[Extra]=>[7]=>select,insert,update,references[Privileges]=>select,insert,update,references[8]=>[Comment]=>)
Array([0]=>title[Field]=>title[1]=>char(50)[Type]=>char(50)[2]=>utf8_general_ci[Collation]=>utf8_general_ci[3]=>YES[Null]=>YES[4]=>[Key]=>[5]=>[Default]=>[6]=>[Extra]=>[7]=>select,insert,update,references[Privileges]=>select,insert,update,references[8]=>建议存储:标题、姓名等信息[Comment]=>建议存储:标题、姓名等信息)
Array([0]=>des[Field]=>des[1]=>varchar(255)[Type]=>varchar(255)[2]=>utf8_general_ci[Collation]=>utf8_general_ci[3]=>YES[Null]=>YES[4]=>[Key]=>[5]=>[Default]=>[6]=>[Extra]=>[7]=>select,insert,update,references[Privileges]=>select,insert,update,references[8]=>[Comment]=>)
…………