无法访问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”附近使用正确的语法
答案 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()
以及请仔细阅读这些手册: