我已经在网络和这个网站上搜索了几个星期,寻找为什么我的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 注入。