如何使用mysqli扩展将表的列名放入PHP数组?我需要获取任何给定表的列名,而不需要从表中获取任何数据。
发布于 2016-07-24 23:55:38
下面的代码从表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'];
}因为我的表中有列id和name,所以结果如下:
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
)
)发布于 2016-07-24 23:40:05
您可以使用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数组包含表的列名
https://stackoverflow.com/questions/38553573
复制相似问题