我正在尝试查询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>";
}
}
}
我想要实现的是列出一个表,其中搜索项匹配表中的列名或列内的数据
答案 0 :(得分:2)
这一行:
$tblQry = "SELECT * FROM $tblName WHERE $colName=$name LIMIT 10";
引用$name
变量:
因此它显示为WHERE $colName='$name'
然后,您可以使用$query3[$colname]
来获取您正在寻找的搜索匹配。
有关标识符限定符的更多信息,请访问: