2015-03-16 5 views
0

Я пытаюсь получить имена столбцов из таблиц, чтобы я мог динамически воссоздавать таблицы на моем веб-сайте. Названия таблиц и имена баз данных являются динамическими и поэтому хранятся в переменных. Мой кодПолучение имен столбцов из моей таблицы базы данных MySQL

function getDBTbldata() { 
    if (isset ($_GET ['tbl'])) { 
     $dbName= $_GET['db']; 
     $tblName = $_GET ['tbl']; 
     echo "<h3> Using Table : $tblName </h3>"; 
     $link = mysqli_connect ('192.168.2.113', 'root', '', $dbName); 
     if (! $link) { 
      die ("Connection failed" . mysqli_errno ($link)); 
     } 
     $colqry = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = $dbName AND TABLE_NAME = $tblName"; 
     $col_names = mysqli_query ($link, $colqry); 
     var_dump($col_names); 
     while ($column = mysqli_fetch_assoc($col_names)){ 
      echo $column[0]; 
     } 
    } 
} 

Запуск выше код дает мне следующую ошибку:

mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in 

Я проверил мой запрос на наличие ошибок синтаксиса, но я не могу определить какие-либо очевидные. Любая помощь?

+1

'echo $ colqry' и запускать sql, выданное echo, либо в phpmyadmin, либо в workbench mysql или в командной строке, копируя его из браузера. – gvgvgvijayan

+2

$ colqry вероятно ошибочно, потому что строковые значения для имен схемы и таблицы не были в кавычках. – kainaw

+0

Большое спасибо, ребята. – b0w3rb0w3r

ответ

1

echo $colqry ответил на запрос, который я тестировал на phpmyadmin, как это было предложено. На самом деле произошла ошибка из-за того, что переменные не были обработаны, и я исправил их. Спасибо

$colqry = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '$dbName' AND TABLE_NAME = '$tblName'"; 

Выше того, как должен выглядеть Синтаксис.

Смежные вопросы