我正在尝试从表中获取列名,以便我可以在我的网站上动态重新创建表。表名和数据库名是动态的,因此存储在变量中。我的代码
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
我已经检查了我的查询是否有任何语法错误,但我无法发现任何明显的错误。有什么帮助吗?
答案 0 :(得分:1)
echo $colqry
返回了一个我在phpmyadmin上测试过的查询。确实有一个错误,因为我修复的变量没有被调整,现在它可以正常工作。感谢
$colqry = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '$dbName' AND TABLE_NAME = '$tblName'";
上面的语法应该如何。