/**
* 读取一个表的列信息
* @author 吾爱 qq296624314
* @param string $tableName 表名
* @param array $option 需要获取的属性
* @return array 返回的一个数组,若指定属性,则以 array("列名1"=>array("属性名1"=>"属性1值"……)……)的格式返回,否则以 array("列名1","列名2"……)的格式返回
*/
function getcolumns($tableName,$option=array()){
$m=M();
$columns=array();
$m_re=$m->query("show columns from `{$tableName}`");
if(!$m_re){
return array();
}
foreach($m_re as $v){
$v=array_change_key_case($v);
if(empty($option)){
$columns[]=$v["field"];
}else{
$vv=array();
foreach($option as $op){
$op=strtolower($op);
if(array_key_exists($op,$v)){
$vv[$op]=$v[$op];
}
}
$columns[$v["field"]]=$vv;
}
}
return $columns;
}
用法:dump(getcolumns("ggw",array("type","key","NULL"))); /* 输出结果
array(2) {
["id"] => array(3) {
["type"] => string(12) "mediumint(8)"
["null"] => string(2) "NO"
["key"] => string(3) "PRI"
}
["dir"] => array(3) {
["type"] => string(9) "char(255)"
["null"] => string(2) "NO"
["key"] => string(0) ""
}
}
*/