PHP准备语句插入数据库

PHP准备语句插入数据库,php,mysql,Php,Mysql,有人看到这有什么问题吗。它根本没有发布到数据库。页面上有一个基本表格,要求填写姓名和地址。但是在提交表单之后,它只会进入一个空白页 这是我的密码。上面还有一些东西,可以通过API验证地址数据并声明变量。代码中的重复数据消除部分在重要情况下工作 if(empty($errorMessage)) { // Dedupe the entry into the form $dupesql = "SELECT * FROM formData WHERE (nam

有人看到这有什么问题吗。它根本没有发布到数据库。页面上有一个基本表格,要求填写姓名和地址。但是在提交表单之后,它只会进入一个空白页

这是我的密码。上面还有一些东西,可以通过API验证地址数据并声明变量。代码中的重复数据消除部分在重要情况下工作

if(empty($errorMessage)) 
    {
        // Dedupe the entry into the form 
        $dupesql = "SELECT * FROM formData WHERE (name = '$full_name' AND address = '$primary_number' AND city = '$city_name' AND state = '$state_abbreviation' AND zip = '$zipcode_full' )";
        $duperaw = $mysqli->query($dupesql);
        if($duperaw->num_rows > 0) {
            $dupe .= "$full_name already exists on $primary_number \n";
        } 
        else {

        $sql = "INSERT INTO formData(name, address, city, state, zip, date) VALUES (?, ?, ?, ?, ?, ?)";
        $stmt = $mysqli->prepare($sql);
        $stmt->bind_param("ssssss", $full_name, $primary_number, $city_name, $state_abbreviation, $zipcode_full, $date);
        $stmt->execute(); 

        header("location: index.php?success=1");
        exit();
        }
    }
我也尝试过使用查询而不是预先准备好的语句,但这只是给出了成功消息,并没有发布到数据库

$sql = "INSERT INTO fromData (name, address, city, state, zip, date) VALUES (".
                $full_name . ", " .
                $primary_number . ", " .
                $city_name . ", " .
                $state_abbreviation . ", " .
                $zipcode_full . ", " .
                $date . ")";
$mysqli->query($sql);
任何帮助都会很好

试试这个SQL

 $sql = "INSERT INTO fromData (name, address, city, state, zip, date) VALUES ('$full_name', '$primary_number', '$city_name', '$state_abbreviation', '$zipcode_full', '$date')";
 $mysqli->query($sql);
赵在暗示这一点

试试这个SQL

 $sql = "INSERT INTO fromData (name, address, city, state, zip, date) VALUES ('$full_name', '$primary_number', '$city_name', '$state_abbreviation', '$zipcode_full', '$date')";
 $mysqli->query($sql);

cHao暗示了这一点

您只会收到原始查询的“成功”消息,因为您不会因为错误而死亡。如果值周围没有引号,几乎可以肯定您已经破坏了SQL语法。您似乎使用了两个表名:
data
formData
(和
fromData
…),这是正确的还是仅仅是一个输入错误?顺便说一句,你应该在数据库调用中添加正确的错误处理。如果你不重定向和回显,它会返回错误吗?@cHao有很多需要学习的地方LOL@QQQ不使用准备好的查询。您只会收到原始查询的“成功”消息,因为您不会因为错误而死亡。如果值周围没有引号,几乎可以肯定您已经破坏了SQL语法。您似乎使用了两个表名:
data
formData
(和
fromData
…),这是正确的还是仅仅是一个输入错误?顺便说一句,你应该在数据库调用中添加正确的错误处理。如果你不重定向和回显,它会返回错误吗?@cHao有很多需要学习的地方LOL@QQQ不使用准备好的查询。删除准备好的语句并打开您的站点以遭受SQL注入攻击不是一个合适的修复方法。下一步是什么?返回到不推荐使用的mysql扩展并启用register globals?@阿尔瓦罗g.Vicario如果准备好的语句更好,我很乐意使用它,但我不确定如何使其工作,请提供任何指导。@Travis-您已经在代码中使用了它们,不是吗?@阿尔瓦罗g.Vicario我正在尝试,但无法使其工作。然后我接受了另一个答案,因为它确实有效,但我不想受到SQL注入的影响。你看到我准备好的语句上面有什么值得你注意的地方吗?删除准备好的语句并打开你的站点以抵御SQL注入攻击不是一个合适的修复方法。下一步是什么?返回到不推荐使用的mysql扩展并启用register globals?@阿尔瓦罗g.Vicario如果准备好的语句更好,我很乐意使用它,但我不确定如何使其工作,请提供任何指导。@Travis-您已经在代码中使用了它们,不是吗?@阿尔瓦罗g.Vicario我正在尝试,但无法使其工作。然后我接受了另一个答案,因为它确实有效,但我不想受到SQL注入的影响。你看到我准备好的声明上面有什么值得你注意的吗?