mysql插入数据不成功_mysql插入数据失败原因分析

本文介绍了一个在使用SQL语句进行数据库间数据迁移时遇到的问题,即如何处理文章内容中的特殊字符,以避免SQL语法错误。文章提供了一种解决方案,通过临时替换特殊字符,确保数据能够成功迁移。

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

今天在做一个项目时,就是把一个数据库里面的资料导入到另一个数据库里面。

想想很简单啊,就是用sql语句,把一个数据库里面数据select读取出来,然后循环update到另一个数据库里面。

其实操作起来也很简单的,但是中途出现了问题,100条左右的数据,总会有10来条数据导入失败,我不想浪费这些资源啊,还是想要这些数据,如实开始分析原因。

select查询数据库A里面的信息,print_f打印出来,完成正确,循环输出也正在,然后就是update插入到另一个数据了。看着看着我终于发现了原因。原因是这样的,update语句一般是这样写的

例如:

$sql = "INSERT INTO `wlsh_xh` (`title`, `content) VALUES ('{$title}', '{$content}')";

上述代码是插入标题和内容到数据库。代码肯定是没问题的,问题出现在变量$content上面。大家都知道,文章内容是千变万化的,特使是针对程序员类的文章,肯定会有很多的代码符合。例如有文章内容含以下符号:

/*此处省略一万字*/k,'a'=123/*此处也省略一万字*/

如果文章$content变量刚好包含上面的代码,那么替换成SQL语句就成了

INSERT INTO `wlsh_xh` (`title`, `content) VALUES ('{$title}', '/,'a'=123')

看到这条语句,我相信很多同学已经发现问题了,对的,由于后面$content变量包含了特殊字符,导致后面包含了三个字段的内容,当然是无法插入数据库了

程序员人生网站提供的解决思路是这样的,先把引号等特殊字符替换掉,插入数据库后再更新,步骤如下:

1、替换变量

$content=$content=str_replace("'","程序员人生",$content);//将引号替换成程序员人生

2、执行SQL语句插入数据

INSERT INTO `wlsh_xh` (`title`, `content) VALUES ('{$title}', '{$content}')

3、把“程序员人生”汉字替换成引号

UPDATE wlsh_xh SET content = REPLACE(content, "程序员人生", "'")

到这里就完成了,特殊字符如何插入数据的方法。更多精彩内容,请访问程序员人生网站

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值