2016-07-24 45 views

回答

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数组包含表

的列名
2

以下代码获取所有列名从表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 
     ) 

) 
+0

使用任一解决方案时,查询都会返回布尔值而不是列名。 –

+0

@benjrei确保连接工作...你可以检查[错误](http://php.net/manual/en/mysqli.error.php)? – FirstOne