如何在数据库中插入带双引号的值?

时间:2015-07-23 08:55:37

标签: php sql insert quoted-identifier

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')

2 个答案:

答案 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'