我找不到任何错误

时间:2017-11-08 12:32:16

标签: php mysql

无法访问header.php ???

if ($_SERVER["REQUEST_METHOD"] == "POST") {   $name = $_POST["firstname"];   $lastname = $_POST["lastname"];   $email = $_POST["email"];   $password = $_POST["password"];   $mobile = $_POST["mobile"];   $office_num = $_POST["office"];

  $sql = mysqli_query($dbcon,"insert into `user_info`(`firstname`, `lastname`, `email`, `password`, `mobile`,`office_contact`) values('$name','$lastname','$email', '$password', '$mobile', $office_num)");

    if (mysqli_query($dbcon, $sql)) {
        echo "New record created successfully";
        header("Location: header.php");
            } else {
        echo "Error: " . $sql . "<br>" . mysqli_error($dbcon);  } ?>

这是我收到的错误:

  

错误:1   您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以便在第1行的“1”附近使用正确的语法

1 个答案:

答案 0 :(得分:1)

这里的问题是你两次使用mysqli_query()

$sql = mysqli_query($dbcon,"insert into... $office_num)");
       ^^^^^^^^^^^^ There

if (mysqli_query($dbcon, $sql))
    ^^^^^^^^^^^^ and there

条件语句再次调用它。您需要删除第一个查询调用,这将解释1作为错误返回。

您的代码也容易出错;使用准备好的声明:

您还要在标题前输出以下代码行:

echo "New record created successfully"; // <<  Remove this line
        header("Location: header.php");

删除它的echo语句并在标题后添加exit;以避免进一步执行。

注意:确保$office_num的值确实是一个整数,例如5551234而不是555-1234。如果是后者,则需要使用引号来包装该变量,就像对其他字符串值一样。

不要存储纯文本密码,特别是如果您正在使用此密码。

使用password_hash()password_verify()以及请仔细阅读这些手册: