从MySQL数据库表中获取列名

时间:2015-03-16 12:14:53

标签: php 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 个答案:

答案 0 :(得分:1)

echo $colqry返回了一个我在phpmyadmin上测试过的查询。确实有一个错误,因为我修复的变量没有被调整,现在它可以正常工作。感谢

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

上面的语法应该如何。