SQL查询似乎无法正常工作

时间:2014-05-07 18:35:39

标签: php mysql sql

我正在制作一个PHP脚本,我正在制作一个安装页面。在运行安装脚本之前,用户必须编辑配置文件并输入其数据库凭据(他们必须先创建数据库)。

安装脚本首先检查它们是否符合要求。如果他们有,则显示“导入表”按钮。这是我遇到问题的地方。这是我的代码:

<?php 

if (isset($_POST['step2'])) {
    if (isset($success_php, $success_mysqli, $step_1_complete)) {
        // Import SQL tables

        $sql = ("
            CREATE TABLE `banned_ips` (
            `id` int(11) NOT NULL AUTO_INCREMENT,
            `ip` varchar(15) NOT NULL,
            `reason` text NOT NULL,
            PRIMARY KEY (`id`),
            UNIQUE KEY `ip` (`ip`)
            ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;
            ");

        if ($db->execute($sql)) {
            $success_import = true;
            $step_2_complete = true;
        }

        $db->close();
    }
}

}

?>

我正在考虑直接从.sql文件加载它,但是我试图使脚本在不同的服务器上兼容,因此,我选择这样查询。

我要问的是我的上述查询是否存在问题,如果是,我该如何解决。在我单击按钮进行测试时,不会创建表及其列。

1 个答案:

答案 0 :(得分:1)

(关闭问题并标记为已解决)

您的表格创建代码签出。正如我在我的文章中所说,您的代码依赖于您设置的条件语句。

如果您使用表单(似乎很明显),请检查您的变量是否已正确设置/命名。

我也在质疑isset($success_php, $success_mysqli, $step_1_complete),所以仔细检查一切。

  

“@ Fred-ii-谢谢,错误是因为在尝试执行之前没有设置两个变量。”

在生产中将错误报告添加到文件的顶部。

error_reporting(E_ALL);
ini_set('display_errors', 1); 

另外,我引用John Conde:

“如果列是主键,则不需要唯一键。它们已经是唯一的。”