php mysql插入错误

php mysql插入错误,php,mysql,Php,Mysql,我得到这个错误 错误:您的SQL语法有错误;检查 与右边的MySQL服务器版本相对应的手册 使用“近”字符(姓名、地址、出生地、年龄、, 生日)值('Alex','Villa V'在第1行 这里 $sql=“插入字符(姓名、地址、出生地、年龄、出生日期) 值(“$name”、“$address”、“$birthplace”、“$age”、“$birthplace”)”; if($conn->query($sql)==true){ echo“新记录创建成功”; }否则{ echo“Error:”.

我得到这个错误

错误:您的SQL语法有错误;检查 与右边的MySQL服务器版本相对应的手册 使用“近”字符(姓名、地址、出生地、年龄、, 生日)值('Alex','Villa V'在第1行

这里

$sql=“插入字符(姓名、地址、出生地、年龄、出生日期)
值(“$name”、“$address”、“$birthplace”、“$age”、“$birthplace”)”;
if($conn->query($sql)==true){
echo“新记录创建成功”;
}否则{
echo“Error:”.$sql.“
”$conn->Error; } $conn->close();
其他一切似乎都很好我检查了语法但是
错误不会消失。

字符
是一个字符,需要使用反勾号进行转义

INSERT INTO `character` (name, address, birthplace, age, birthdate) 
VALUES ( 'Alex','Villa Verde Subd.','July 5 1993', '17','July 5 1993')

顺便说一句,您应该将日期值存储在
date
列中,而不是作为字符串。存储
age
也不是一个好主意,因为它需要调整。它可以从出生日期开始计算。

字符在MySQL中是一个保留字。您必须使用倒勾来转义它:

$sql = "INSERT INTO `character` (name, address, birthplace, age, birthdate) VALUES ( '$name','$address','$birthplace', '$age','$birthplace')";

不能将
字符
用作表名作为其保留关键字。使用反勾号

字符
是MySQL保留字

为此,请使用反勾号,例如:

INSERT INTO `character`
有关更多信息,请参见此处:


在这个问题中,大量的叫喊大写字母被认为是叫喊…关于你问题的第一个视图,我直到最后才会读它…也要正确地格式化你的代码。你有没有试过在你的sql工具中运行它?例如phpmyadmin。你的表结构是什么?这是mysql数据库的版本,我使用的是服务器:127.0.0.1,通过TCP/IP S软件:MySQL软件版本:5.5.27-MySQL社区服务器(GPL)协议版本:10用户:root@localhost服务器字符集:UTF-8 Unicode(utf8)字符可能是保留关键字。[lol late]
INSERT INTO `character`