我正试图从表中获取列名,以便在我的网站上动态地重新创建表。表名和数据库名是动态的,因此存储在变量中。我的代码
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
我已经检查了我的Query是否有任何语法错误,但我找不到任何明显的错误。有什么帮助吗?
echo $colqry
返回了一个查询,我按照建议在phpmyadmin上测试了这个查询。确实有一个错误是由于没有计算变量,我修复了这个错误,现在它可以工作了。感谢
$colqry = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '$dbName' AND TABLE_NAME = '$tblName'";
上面的语法应该是什么样子。