insert into sent_message (user_id,subject,message,background_url,total_recipients,created_at) values ('115','Greeting','Hx z'xi','/images/default/1.jpg',2,'2015-07-23 10:48:41')
对于消息列,我使用了带单引号的值,因此我得到了插入错误....
我尝试更改查询如下,但输出和错误是相同的。何而来呢。
SET QUOTED_IDENTIFIER ON GO insert into sent_message (user_id,subject,message,background_url,total_recipients,created_at) values ('115','Greeting','Hx z'xi','/images/default/1.jpg',2,'2015-07-23 10:48:41')
答案 0 :(得分:3)
您是否尝试过使用预先准备好的声明?这样您就不必担心在值部分添加引号;你使用问号代替占位符。
然后,当您将变量/字符串传递给execute方法时,可以使用addslashes
来转义任何双引号/单引号。
你没有提到你正在使用哪个数据库,所以我假设MySQL?
以下是关于预准备陈述的PHP手册:
http://php.net/manual/en/mysqli.quickstart.prepared-statements.php
答案 1 :(得分:0)
单引号(')的转义字符是两个单引号('')。从而 例如:
Insert into SomeTable(TextField) Select 'Some ''single quotes inserted'''
将屈服:
Select TextField from SomeTable
Some 'single quotes inserted'