语句中的PHP MySQL错误

语句中的PHP MySQL错误,php,mysql,Php,Mysql,上面的MySQL语句有什么错误?我已经检查了代码中的所有其他内容,但只有这个似乎有问题 我将此语句传递给PHP中的mysql_query()函数。它给了我一个错误,并且没有在行中插入数据 上述所有变量也都存在 那么问题出在哪里呢?'date'是一个MySQL关键字(用于日期字段类型)。您应该用反勾号将字段名括起来,如下所示: INSERT INTO expense (date,desc,price,out,method) VALUES ('$time','$desc','$price','$o

上面的MySQL语句有什么错误?我已经检查了代码中的所有其他内容,但只有这个似乎有问题

我将此语句传递给PHP中的mysql_query()函数。它给了我一个错误,并且没有在行中插入数据

上述所有变量也都存在

那么问题出在哪里呢?

'date'是一个MySQL关键字(用于日期字段类型)。您应该用反勾号将字段名括起来,如下所示:

INSERT INTO expense (date,desc,price,out,method) 
VALUES ('$time','$desc','$price','$out','$method');

(我认为其他字段也可以,但如果您愿意,也可以在这些字段中添加反勾号)

desc
是SQL中的关键字(
orderby`key`desc
)。不能使用在SQL中也是关键字的单词。在这种情况下,应使用
`
符号转义desc(如
`desc`
date
也是关键字,但MySQL决定允许它的不正确使用,因为在将其设置为关键字之前,它的用法很常见。但并不是每个数据库引擎都允许这样做,所以要小心

但是,实际上引用所有键是一种很好的做法,即使它不是必需的——这样可以防止在SQL中添加关键字,这会破坏您的查询


尝试转义所有字段,如
`date`
告诉我们错误消息如何?语法错误靠近:desc、price、out、method)value('1321196048'、'd'、'4'、'1'、'cash'@BookOfZeus it worked…,谢谢…在查询中使用它们之前,请使用预先准备好的语句或转义变量
INSERT INTO expense (`date`,desc,price,out,method)