我正在编写一个函数,用于记录与Facebook Messenger机器人的交互。用户说的任何内容都会记录在PostgreSQL数据库中。
我的插入语句如下:
INSERT INTO interactions (fbid,date,time,event) VALUES ('senderid','2018-10-
01','11:15:48','text')
将“ senderid”视为20位数字,将“ text”视为用户所说的话。
现在,如果来自用户的文本不包含撇号字符,则以上语句将起作用。但是,有时文本的确包含撇号。在这种情况下,插入无法正常工作。
例如,如果用户说“ Let's chat”,那么我的SQL如下所示:
INSERT INTO interactions (fbid,date,time,event) VALUES
('senderid','2018-10-01','11:15:19','Let's Chat!')
,我收到以下错误消息:
Query result: error: syntax error at or near "s"
我知道这是因为我需要逃脱撇号。我尝试通过在插入语句中使用双引号来解决此问题,如下所示:
INSERT INTO interactions (fbid,date,time,event) VALUES ("senderid","2018-09-
28","10:50:07","Let's chat")
但是当我这样做时,出现以下错误:
ERROR: column "senderid" does not exist
所以我有两个问题:
答案 0 :(得分:0)
请尝试以下操作:如果需要单引号,则需要使用两次单引号
INSERT INTO interactions (fbid,date,time,event) VALUES ('senderid','2018-09-
28','10:50:07','Let''s chat')
答案 1 :(得分:0)
1。我可以在SQL插入中使用双引号吗?
不,您不能,因为双引号表示postgrey中的列名,这是为什么当您使用双引号时sql引擎找到该列的原因
您可以使用
(col1, col2) VALUES (value1, value2)