免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 9905 | 回复: 5
打印 上一主题 下一主题

向mysql里插入的数据里面含有单引号,改如何处理 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-23 16:54 |只看该作者 |倒序浏览
$sth=$dbh->do("INSERT INTO english (id,Summary)VALUES($content[1],'$content[2]')");

Summary为TEXT类型的,现在的问题是$content[2]里面含有单引号,导致总是插入错误,我已经调试过了,确定是$content[2]的问题,请达人帮忙。

$content[2]内容如下:
The HotSaNIC (hotsanic.sourceforge.net) System and Network Info Centre can graph the occurence of worms attacks on a server against time. The HotSaNIC system displays 'WEB-IIS cmd.exe access ' attempts on the server in an image file named thumb-cmd.exe.gif. Each time this image is accessed it generates an event.

论坛徽章:
0
2 [报告]
发表于 2007-10-23 17:15 |只看该作者
$quoted_string = $dbh->quote($string);

论坛徽章:
0
3 [报告]
发表于 2007-10-23 17:55 |只看该作者
楼上正解
quote方法生成两端带单引号的String,如果传给它的参数里包含单引号则自动转义。

LZ的问题还有更方便的写法:
$sth=$dbh->prepare("INSERT INTO english (id,Summary) VALUES (? , ?)");
$sth -> execute($content[1] , $content[2])
这种情况也是自动调用quote方法,方便重复使用的。

论坛徽章:
0
4 [报告]
发表于 2013-06-06 08:34 |只看该作者
学习了 好办法 现在就用

论坛徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30数据库技术版块每日发帖之星
日期:2015-12-01 06:20:002015亚冠之首尔
日期:2015-11-04 22:25:43IT运维版块每日发帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27狮子座
日期:2014-05-12 11:00:00辰龙
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34IT运维版块每日发帖之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之新疆
日期:2016-06-07 14:10:01
5 [报告]
发表于 2013-06-06 08:47 |只看该作者
回复 3# JasonLee8872


    应该强制这种方式
   否则必然被报sql注入的漏洞

论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-12-14 14:57:19射手座
日期:2014-04-25 21:23:23
6 [报告]
发表于 2013-06-06 10:01 |只看该作者
  1. '\''
复制代码
{:3_186:}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP