duanri1985
duanri1985
2015-07-23 08:55
浏览 1.2k
已采纳

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

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

For the message column i have used the value with single quotes hence i got the insertion error....

And i tried to change the query as below but the output and the error is same. Ho to over come it.

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条回答 默认 最新

  • doujie4787
    doujie4787 2015-07-23 09:25
    已采纳

    Have you tried using prepared statements? This way you don't have to worry about adding the quotes in the values section; you use question marks instead as place holders.

    You could then use addslashes to escape any double/single quotes when you pass your variables/strings to the execute method.

    You didn't mention which database you're using, so I'm assuming MySQL?

    Here is the PHP manual on prepared statements:

    http://php.net/manual/en/mysqli.quickstart.prepared-statements.php

    点赞 评论
  • dongren1011
    dongren1011 2015-07-23 11:43

    The escape character for single quote (') is two single quotes (''). Thus Example:

    Insert into SomeTable(TextField) Select 'Some ''single quotes inserted'''
    

    Will yield:

    Select TextField from SomeTable
    
    Some 'single quotes inserted'
    
    点赞 评论

相关推荐