使用动态变量查询MySQL表


Querying MySQL table using dynamic variables

我正在尝试查询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