首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在中使用单引号时如何添加单引号

在中使用单引号时如何添加单引号
EN

Stack Overflow用户
提问于 2015-04-25 20:40:50
回答 3查看 513关注 0票数 0

我在上遇到了问题,我不想连接到这个SQL服务器,我想让数据为插入到这个数据库中的行做好准备,我有一个文本文件,其中有我想要插入到SQL server中的字符串行,行如下:

You're Doing It Wrong!!,Mike Walsh,Intermediate

因此,应该像这样为sql server做好准备。

You''re Doing It Wrong!!,Mike Walsh,Intermediate

我也有这样的台词:

Never Have to Say "Mayday!!!" Again

这件事会成为问题吗?我也有什么计划吗?

我尝试使用addslash,然后用单引号替换斜杠,方法是:

代码语言:javascript
代码运行次数:0
运行
复制
  $str=",('".addslashes ($array[0])."')";
     $str=str_replace("\\","\'",$str);
     echo $str;

我做了逗号和括号,当我在sql server中进行insert查询时,结果将是:

代码语言:javascript
代码运行次数:0
运行
复制
    ,('You\''re Doing It Wrong!!'),
,('Never Have to Say \'"Mayday!!!\'" Again'),

我在这里做错了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-04-25 20:47:21

使用准备好的语句是最好的方法。如果坚持使用正则表达式,则可以使用preg_replace使用双引号,以便有偶数的相应单引号:

代码语言:javascript
代码运行次数:0
运行
复制
''|(')

代之以''。请参阅演示

示例PHP代码:

代码语言:javascript
代码运行次数:0
运行
复制
$re = "/''|(')/"; 
$str = "You're Doing It Wrong!!,'''Mike Walsh'',Intermediate"; 
$subst = "''"; 
$result = preg_replace($re, $subst, $str);

输出:

代码语言:javascript
代码运行次数:0
运行
复制
You''re Doing It Wrong!!,''''Mike Walsh'',Intermediate
票数 0
EN

Stack Overflow用户

发布于 2015-04-25 20:45:24

您正在错误地处理此问题:与其准备将字符串“粘贴”到Server的查询中,不如将SQL参数化,并将字符串作为参数传递。这样你就完全不用转义了,引号或其他特殊字符的数量也不重要:

代码语言:javascript
代码运行次数:0
运行
复制
$sql = "INSERT INTO MyTable(id,name) VALUES (?,?)"
$params = array($someId, $name)
$sql_srv_query($db_conn, $sql, $params);
票数 2
EN

Stack Overflow用户

发布于 2015-04-25 20:46:45

可以试试这个

代码语言:javascript
代码运行次数:0
运行
复制
$str = "You're Doing \"It Wrong!!,Mike Walsh,Intermediate";
$st = addslashes($str);

首先,您可以将“”替换为“\",然后使addslashes

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29870482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档