首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从给定的MySQL表中获取列名?

问如何从给定的MySQL表中获取列名?
EN

Stack Overflow用户
提问于 2016-07-24 23:17:39
回答 2查看 31K关注 0票数 8

如何使用mysqli扩展将表的列名放入PHP数组?我需要获取任何给定表的列名,而不需要从表中获取任何数据。

EN

回答 2

Stack Overflow用户

发布于 2016-07-24 23:55:38

下面的代码从表table_name中获取所有列名

代码语言:javascript
复制
$mysqli = new mysqli('localhost', 'USERNAME_HERE', 'PASSWORD_HERE', 'DATABASE_HERE');

$sql = 'SHOW COLUMNS FROM table_name';
$res = $mysqli->query($sql);

while($row = $res->fetch_assoc()){
    $columns[] = $row['Field'];
}

因为我的表中有列id和name,所以结果如下:

代码语言:javascript
复制
Array
(
    [0] => id
    [1] => name
)

如果想要从结果集中获取列,则视情况而定,但这里有一种方法:

代码语言:javascript
复制
$mysqli = new mysqli('localhost', 'USERNAME_HERE', 'PASSWORD_HERE', 'DATABASE_HERE');

$sql = 'SELECT * FROM table_name';
$res = $mysqli->query($sql);

$values = $res->fetch_all(MYSQLI_ASSOC);
$columns = array();

if(!empty($values)){
    $columns = array_keys($values[0]);
}

$columns的示例结果

代码语言:javascript
复制
Array
(
    [0] => id
    [1] => name
)

$values的示例结果

代码语言:javascript
复制
Array
(
    [0] => Array
        (
            [id] => 1
            [name] => Name 1
        )

    [1] => Array
        (
            [id] => 2
            [name] => Name 2
        )

)
票数 17
EN

Stack Overflow用户

发布于 2016-07-24 23:40:05

您可以使用array_keys()来获取数组的所有键,

代码语言:javascript
复制
$myarray = array('key1' => 'a', 'key2' => 'b')
$x = array_keys($myarray);

您想要的结果可以从$x获取

代码语言:javascript
复制
$x = array(0 => 'key1', 1 => 'key2');

为了获得表的列名,

代码语言:javascript
复制
$sql = "SELECT * FROM table_name LIMIT 1";
$ref = $result->query($sql);
$row = mysqli_fetch_assoc($ref);
$x = array_keys($row);

现在,$x数组包含表的列名

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38553573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档