使用动态变量查询MySQL表

时间:2015-03-18 11:51:53

标签: php mysql

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

我想要实现的是列出一个表,其中搜索项匹配表中的列名或列内的数据

1 个答案:

答案 0 :(得分:2)

这一行:

$tblQry = "SELECT * FROM $tblName WHERE $colName=$name LIMIT 10";

引用$name变量:

因此它显示为WHERE $colName='$name'

然后,您可以使用$query3[$colname]来获取您正在寻找的搜索匹配。

有关标识符限定符的更多信息,请访问: