【问题标题】:how to insert the value having double quotes in the database?如何在数据库中插入具有双引号的值?
【发布时间】:2015-10-13 11:27:07
【问题描述】:
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')

【问题讨论】:

  • addslashes 可以帮助或转义字符串。
  • 我什至希望在表格中插入单引号。
  • 使用 mysqli_real_escape_string() 是诀窍

标签: php sql insert quoted-identifier


【解决方案1】:

单引号 (') 的转义字符是两个单引号 ('')。因此 示例:

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

将产生:

Select TextField from SomeTable

Some 'single quotes inserted'

【讨论】:

    【解决方案2】:

    您是否尝试过使用准备好的语句?这样您就不必担心在值部分添加引号;您使用问号代替占位符。

    当您将变量/字符串传递给执行方法时,您可以使用addslashes 转义任何双引号/单引号。

    你没有提到你使用的是哪个数据库,所以我假设是 MySQL?

    这里是准备好的语句的 PHP 手册:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-30
      • 1970-01-01
      • 2013-09-29
      相关资源
      最近更新 更多