2016-08-17 145 views
0

所以我一直在努力與我的數據庫,讓它給我的表中包含的列的名稱。SQL查詢檢索列名列表

這裏是我的PHP:

$sql = "SELECT * FROM hacklvrf_db.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = N'generators'" ; 
    $result = mysqli_query($con, $sql); 
    $row = mysqli_fetch_array($result, MYSQLI_ASSOC); 
    $generators = $row['generators']; 
    foreach ($row as $lol) { 
    echo ($lol); 
    } 

出於某種原因,這是不與任何回答(PHP不會彈出一個錯誤,但我的變量似乎是空的),我真的不明白我我錯過了。

echo (gettype ($row)); 

顯示「NULL」

我知道這個問題已經被問過了,我實際上得到了我的SQL查詢來自其他地方,但我因爲我不能工作了......我在這裏!

在此先感謝你們!

+4

'WHERE TABLE_NAME = N'generators''這是一個語法錯誤。檢查錯誤。順便說一下,'回聲'不是一個函數,它是一個構造。 –

+0

這是什麼'N'generators''? –

+1

@NanaPartykar一定是貓,或一個壞*鼠*。 –

回答

2

變化

$sql = "SELECT * FROM hacklvrf_db.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = N'generators'"; 

$sql = "SELECT `COLUMN_NAME` FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_SCHEMA`='database-name' AND `TABLE_NAME`='table-name'"; 

用你的SQL查詢更改數據庫名和表名後,我得到錯誤

1064 - 你有一個錯誤你的SQL語法;檢查對應於你的MySQL服務器版本正確的語法使用WHERE TABLE_NAME

更新的代碼 附近」 .COLUMNS手動(只是把你的數據庫名和查詢表名)

<?php 
$sql = "SELECT `COLUMN_NAME` FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_SCHEMA`='database-name' AND `TABLE_NAME`='table-name'"; 
$result = mysqli_query($con, $sql); 
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){ 
    echo $row['COLUMN_NAME']."<br>"; 
} 

?> 

欲瞭解更多信息,請點擊MySQL query to get column names?

+0

我會馬上這樣做並更新,感謝您的幫助! –

+0

完美無瑕!萬分感謝!你有什麼機會可以快速解釋爲什麼第一種方式不起作用? (它看起來像是幾乎相同的東西)再次感謝! –

+0

我對此沒有太多的想法。我在我的系統中試過你的查詢,它給了我在我的答案中發佈的錯誤。所以,我搜索了它,並獲得了新的查詢,我在我的答案中也發佈了鏈接。通過它。你會得到更好的解釋。 *很高興工作。* @tazetotero –