如何在Php MySQLi中获取列名?

时间:2016-07-24 15:17:39

标签: php mysql arrays database

使用Php和MySQLi如何获取表的列名,然后将该查询的结果放在数组中?

2 个答案:

答案 0 :(得分:4)

以下代码获取表table_name中的所有列名:

$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'];
}

由于我的表格中有idname列,因此结果如下:

Array
(
    [0] => id
    [1] => name
)

如果你想从结果集中获取列,这取决于,但这是一种方法:

$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的示例结果:

Array
(
    [0] => id
    [1] => name
)

$values的示例结果:

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

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

)

答案 1 :(得分:2)

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

$myarray = array('key1' => 'a', 'key2' => 'b')
$x = array_keys($myarray);

您想要的结果可以从$ x

获得
$x = array(0 => 'key1', 1 => 'key2');

为了获取表的列名,

$sql = "SELECT * FROM table_name LIMIT 1;
$ref = $result->query($sql);
$row = mysqli_fetch_assoc($ref);
$x = array_keys($row);

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