若未指定属性(第二个参数),则只返回列名的一维索引数组。
若指定第二个参数,则返回一个2维关联数组,其中key是列名,value是属性=》属性值的第二维数组。
/**
* 读取一个表的列信息
* @author 吾爱 qq296624314
* @param string $tableName 表名
* @param array $option 需要获取的属性
* @return array 返回的一个数组,若指定属性,则以 array("列名1"=>array("属性名1"=>"属性1值"……)……)的格式返回,否则以 array("列名1","列名2"……)的格式返回
* @example
*/
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("key","type")));