SQL语法错误,任何人都可以帮助我填写注册表单


Error in SQL syntax, can anyone help me with my signup form?

我已经在网络和这个网站上搜索了几个星期,寻找为什么我的PHP代码不起作用的答案,但我还没有发现。

我正在我的网站上制作一个表单,用户可以在其中注册活动。然后,这些数据将存储在MySQL数据库中。

这是我的PHP进程代码.php:

<?php
$connect=mysqli_connect('hostxxxx','userxxxx','passwordxxxx','databasexxxx');
if(mysqli_connect_errno($connect))
{
        echo 'Failed to connect';
}
// create a variable
$name=$_POST['name'];
$club=$_POST['club'];
$food=$_POST['food'];
$when=$_POST['when'];
$acro=$_POST['acro'];
//Execute the query
mysqli_query($connect,"INSERT INTO registered (name,club,food,when,acro)
                VALUES('$name','$club','$food','$when','$acro')");

if(mysqli_affected_rows($connect) > 0){
    echo "<p>Signup successful!<br>The JWDW-crew</p>";
    echo "<a href='index.html'>Go Back</a>";
} else {
    echo "Signup failed";
    echo mysqli_error ($connect);
}
?>

我的 MySQL 数据库包含 5 行:name, club, food, when and acro .我在index.html文件中制作了一个表单,其开头为:

<form method="post" action="process.php"

我真的想不通它有什么问题。我不断收到错误消息:

您的 SQL 语法有误;请查看手册 对应于您的MySQL服务器版本,以便使用正确的语法 在行的"当,阿克罗")值(","是","仅在一天中","是")" 1

有人可以帮助我的代码吗?

让我们用 ' 字符转义您的列名。

mysqli_query($connect,"INSERT INTO registered (`name`,`club`,`food`,`when`,`acro`) VALUES('$name','$club','$food','$when','$acro')");

正如草莓在他的评论中悲伤的那样。

  • 通过转义来自用户输入的变量来避免 sql 注入。