我想让所有的mysql表的col名称在php数组?

对此有疑问吗?


当前回答

似乎有两种方法:

DESCRIBE `tablename`

or

SHOW COLUMNS FROM `tablename`

更多描述请点击:http://dev.mysql.com/doc/refman/5.0/en/describe.html

其他回答

这将生成一个带逗号分隔符的列名字符串:

    SELECT CONCAT('(',GROUP_CONCAT(`COLUMN_NAME`),')') 
    FROM `INFORMATION_SCHEMA`.`COLUMNS` 
    WHERE `TABLE_SCHEMA`='database_name' 
    AND `TABLE_NAME`='table_name';

在WORDPRESS:

global $wpdb;   $table_name=$wpdb->prefix.'posts';
foreach ( $wpdb->get_col( "DESC " . $table_name, 0 ) as $column_name ) {
  var_dump( $column_name );
}

似乎有两种方法:

DESCRIBE `tablename`

or

SHOW COLUMNS FROM `tablename`

更多描述请点击:http://dev.mysql.com/doc/refman/5.0/en/describe.html

调用DESCRIBE可以很好地获取表的所有列,但如果需要对其进行筛选,则需要使用SHOW columns FROM。

PHP函数获取表的所有信息的例子:

// get table columns (or return false if table not found)
function get_table_columns($db, $table) {
    
    global $pdo;

    if($cols = $pdo->query("DESCRIBE `$db`.`$table`")) {
        if($cols = $cols->fetchAll(PDO::FETCH_ASSOC)) {
            return $cols;
        }
    }
    
    return false;
}

在我的例子中,我必须找到一个表的主键。所以,我用了:

SHOW COLUMNS FROM `table` WHERE `Key`='PRI';

下面是我的PHP函数:

// get table Primary Key
function get_table_pk($db, $table) {

    global $pdo;
            
    $q = "SHOW COLUMNS FROM `$db`.`$table` WHERE `Key` = 'PRI'";
    if($cols = $pdo->query($q)) {
        if($cols = $cols->fetchAll(PDO::FETCH_ASSOC)) {
            return $cols[0];
        }
    }
    
    return false;
}

如果您使用php,请使用这个要点。

它可以获得选择字段的完整信息而没有结果,以及所有自定义字段,如:

SELECT a.name aname, b.name bname, b.* 
FROM table1 a LEFT JOIN table2 b
ON a.id = b.pid;

如果上面SQL没有返回数据,还会得到字段名aname, bname, b的其他字段名

只有两行:

$query_info = mysqli_query($link, $data_source);
$fetch_fields_result = $query_info->fetch_fields();