历飞雨_smile
2021-12-31 03:33
采纳率: 75%
浏览 124
已结题

希望能帮我解决Java的一个MySQL语句问题

问题遇到的现象和发生背景

mysql 语句 执行的时候报错了

问题相关代码,请勿粘贴截图
String sql = "insert into topic(c_id,title,content,pv,user_id,username,user_img,create_time,update_time,hot,`delete`) "
                +"values(?,?,?,?,?,?,?,?,?,?,?)";

相关代码:

img

img

img

运行结果及报错内容
java.sql.SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''delete') values(2,'test','javaweb',1,3,'tom','https://xd-video-pc-img.oss-cn-be' at line 1 Query: insert into topic (c_id,title,content,pv,user_id,username,user_img,create_time,update_time,hot,'delete') values(?,?,?,?,?,?,?,?,?,?,?) Parameters: [2, test, javaweb, 1, 3, tom, https://xd-video-pc-img.oss-cn-beijing.aliyuncs.com/xdclass_pro/default/head_img/12.jpeg, 2021-12-31T03:18:35.363, 2021-12-31T03:18:35.363, 0, 0]
我的解答思路和尝试过的方法
我想要达到的结果

能插入数据库便可

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

5条回答 默认 最新

  • 神仙别闹 2021-12-31 08:31
    最佳回答

    是SQL语句错误,导致的异常
    1、如果列名是关键字,需要用中括号包起来,例如[delete]
    2、如果列的类型是字符串的话,它的值需要加单引号,例如title的值 value 应该是 '?'
    3、如果列的类型是时间的话,可以用MYSQL自带的函数now()来获取当前时间
    4、如果列的类型是INT类型的话,只能填写数字,例如c_id,pv,user_id等
    所以你的SQL语句应该调整为:

    insert into topic(c_id,title,content,pv,user_id,username,user_img,create_time,update_time,hot,[delete])  values (0,'','',0,0,'','',now(),now(),'','')
    
    评论
    解决 1 无用
    打赏 举报 编辑记录
    1人已打赏
查看更多回答(4条)

相关推荐 更多相似问题