我正在尝试查询MySQL表,以获得与用户输入的数据匹配的任何结果。数据库、表和列名也动态存储在变量中。var_dump
生成bool(false)
,这意味着我的查询是错误的。
我的代码
if (isset ( $_POST ['name'] )) {
$name = trim ( $_POST ['name'] );
$tblName = $_REQUEST ['tbl'];
$colqry = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '$dbName' AND TABLE_NAME = '$tblName'";
echo "<ul>";
$col_names = mysqli_query ( $link, $colqry );
while ( $col = mysqli_fetch_array ( $col_names, MYSQL_ASSOC ) ) {
$colName = $col ['COLUMN_NAME'];
$tblQry = "SELECT * FROM $tblName WHERE $colName=$name LIMIT 10";
$query2 = mysqli_query ($link, $tblQry);
echo $query2;
while ( $query3 = mysqli_fetch_array ( $query2 ) ) {
echo "<li onclick=fill'" . $query3 [0] . "'>" . $query3 [0] . "</li>";
}
}
}
我想要实现的是列出一个表,其中搜索项与表上的列名或列
此行:
$tblQry = "SELECT * FROM $tblName WHERE $colName=$name LIMIT 10";
引用$name
变量:
所以它读作WHERE $colName='$name'
然后,您可以使用$query3[$colname]
来获得您要查找的搜索匹配项。
有关标识符限定符的更多信息,请访问:
- http://dev.mysql.com/doc/refman/5.0/en/identifier-qualifiers.html