使用Php和MySQLi如何获取表的列名,然后将该查询的结果放在数组中?
答案 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'];
}
由于我的表格中有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
)
)
答案 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数组包含表的列名