You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行含单引号数据的SQL INSERT语句报语法错误如何解决

报错原因

这条INSERT语句语法报错的核心诱因有2个,另有1个易引发数据错误的隐患:

  • 字符串内单引号未转义:SQL以单引号作为字符串边界标识,被单引号包裹的字符串内容如果本身包含单引号,必须用两个连续单引号做转义(ANSI SQL标准写法,兼容所有主流数据库)。你写的Gift your Dear one's里的单引号会被数据库判定为字符串提前终止,后续内容解析错位,直接触发语法错误。
  • 误用HTML转义实体:语句里的"是HTML场景的双引号转义实体,SQL语法无法识别。由于字符串外层用单引号包裹,内部的双引号不会和SQL语法冲突,直接书写双引号即可。
  • 邮编字段值隐患:PostalCode位置你写的是无引号的012,如果该字段是字符类型(邮编通常以字符串存储,避免前导0丢失),不加引号会被解析为数字12,丢失开头的0。
修正后可直接执行的SQL

已修复上述问题,同时移除了字段值前后无意义的冗余空格,若业务需要保留前后空白可自行添加:

INSERT INTO
    Customers (CustomerId, ContactNumber, MsgContent, City, PostalCode, Country)
VALUES 
    (1, '123456', '["https://example-img-storage-path","Gift your Dear one''s with surprise gifts","abc","123","xyz"]', 'mno', '012', 'pqr');

补充说明:如果你使用MySQL数据库,也可以用反斜杠转义单引号,将one''s写为one\'s,但连续双单引号的写法是SQL标准,跨数据库兼容性更好。

内容的提问来源于stack exchange,提问作者Sulu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 10:45:29