关于一个编辑器插入数据库需要转义的问题

本文介绍了解决因SQL语句中包含特殊字符导致的语法错误的方法。通过使用mysql_real_escape_string()和addcslashes()函数对数据进行转义处理,确保了数据能够正确地插入到MySQL数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天客户的网站遇到一个不能编辑的问题  刚开始把sql打印出来在自己的phpmyadmin里面跑了一个   很奇怪的不报错还成功  很是不解

然后再网上搜了半天没找到解决办法   最后看到一个解决办法  还是可以的  

报错如下:
       You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">“这边因个人网站的内同不同而变”
       (你在你的sql语句句法上有一个错误,仔细检查帮助手册,用右面的句法(略)是否符合你的数据库服务器版本)
       经过请教别人才知道是执行的sql语句里面有单引号、双引号 就把sql语句隔断了,所以才导致数据部能入库
      
       我用mysql_reql_escape_string();和addcslashes()对要提交的详细内容进行了下处理
            $desc = mysql_real_escape_string(addcslashes($desc));
            结果问题解决了,
      分析:string mysql_real_escape_string ( string unescaped_string [, resource link_identifier] )
            本函数将 unescaped_string 中的特殊字符转义,并计及连接的当前字符集,因此可以安全用于 mysql_query()。
            所以有些提交的数据里面有可能带有特殊字符,可能导致mysql_query()函数的执行不安全,因此就不能执行成功了。 
       注: mysql_real_escape_string() 并不转义 % 和 _。

            string addcslashes ( string str, string charlist )
           返回字符串,该字符串在属于参数 charlist 列表中的字符前都加上了反斜线。此函数对 \n、\r 等进行转义。像 C 那样,ASCII 码低于 32 以及高于 126 的字符均转换成使用八进制表示。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值