我在sql Workbench和java中的executeUpdate()方法中运行了查询:
在Workbench中:
INSERT INTO recentsearches (name) VALUES ("blah");
在java中:
statement.executeUpdate("INSERT INTO recentsearches (name) VALUES (\""+name+"\""));
假设name =“blah”。但是我在java中运行查询时出现语法错误,我已经检查了name的字符串值。它肯定是“blah”,我没有忘记字符串值周围的语音标记,但我仍然得到语法错误。
我在控制台中遇到的错误是:
查看与您的MySQL服务器版本对应的手册 在'第1行'附近使用正确的语法
答案 0 :(得分:1)
尝试使用:
"INSERT INTO recentsearches (name) VALUES("+name+")";
我的建议是,使用PreparedStatement,因为它有:
- SQL语句的预编译和数据库端缓存可以提高整体执行速度,并能够批量重用相同的SQL语句。
- 通过内置转义引号和其他特殊字符自动防止SQL注入攻击。请注意,这要求您使用任何PreparedStatement setXxx()方法来设置值