2016-07-24 104 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