mysql insert报缺少单引号_mysql insert时内容里面有单引号

当使用php进行mysql insert一条语句时,发现插入失败,提示是语法错误。Fatal error: Uncaught

exception 'Exception' with message '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

'洛阳'.查看这条语句时。发现这个洛阳这句话的地方有英文的单引号“'”;因为单引号是mysql中的内置符号。所以要用到的话,只能转义。

例如

$content = "我们有时候去过'洛阳'";

$content2 = "aadsl了德古拉的两款打开";

$intro = addcslashes($content,'\'');

$antro = addcslashes($content2,'\'');

$new = sql_insert("insert into

sys_union(`name,`intro`,`antro`)

values('$name','$intro','$antro')");

其实调用php的内置函数addcslashes,就是为了将单引号转义,使其能够在内容中如果有单引号的情况下,也能够顺利的插入,而不会被报语法错误。因此将中文描述插入到数据库里的时候,要注意检测字符串的合法性,进行过滤。去空格等操作。

但是我在使用mysql 自带的replace函数时报错。不知道为什么不能直接在mysql

语句中进行转义替换。不知道什么情况。具体的replace代码,我使用报错的情况是

$new = sql_insert("insert into

sys_union(`name,`intro`,`antro`)

values('$name',replace($content,'\'','\‘'),replace($content2,'\'','\‘'),)");

但是我在phpmyadmin里面执行却是正确的。也被正确的替换掉了,插入也正确。但在php

里面执行却报错。不知道什么情况。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值