语法错误或访问冲突:1103包含$ _POST数组数据的表名不正确

时间:2015-08-16 10:22:32

标签: php mysql

我有这个表格

<form action="table_results.php" method="post">
            <?php
            foreach (get_table($_POST['table']) as $row) {  // Fill $row variable with table fields
                ?>
                <input type="text" name="table[ <?php echo $_POST['table'] ?> ][ <?php echo implode($row) // Create table array ?> ]" size="20" >
                <?php
            }
            ?>
            <p><input type="submit" /></p> <!-- Post the table array to table_results.php -->
        </form> 

get_table();返回特定表的字段名称

当我将发布的数据用于以下功能时

function search_db($table, $field, $query) {
$database = new Database();
$database->query( "SELECT * FROM `" . $table . "` WHERE `" . $field . "` = :query" );
$database->bind(":query", $query);
$database->execute();

$result = $database->resultSet();

if (!$result) {
    print 'ERROR';
    die();
} else {
    return $result;
}
}

我收到错误:&#34;语法错误或访问冲突:1103表名不正确&#34;

我试图测试变量是否包含正确的数据

$array = $_POST['table'];
$table = implode(array_keys($array));
print $table;

结果:电脑

当我输入&#39; computer&#39;在$table变量 - function search_db('computer', 'id', 1);中 - 它运行正常

当我打印$table变量以及&#39;计算机&#39;我得到完全相同的输出。

我的数据库无法识别$table变量的原因是什么?

0 个答案:

没有答案