mysql插入失败39_在linux下写的mysql无法插入,sql语句在复制中变'脏'了.

1:问题故障描述 因为在linux下开发,所以修改mysql字段的时,用的phpmyadmin来直接修改生成修改后的sql,然后复制进word(libreoffice)后提交到项目管理系统, 同事发到项目管理系统后不能运行.于是有了这篇文章. 2:首先新建表 CREATE TABLE IF NOT EXISTS `nns_a

1:问题故障描述

因为在linux下开发,所以修改mysql字段的时,用的phpmyadmin来直接修改生成修改后的sql,然后复制进word(libreoffice)后提交到项目管理系统,

同事发到项目管理系统后不能运行.于是有了这篇文章.

2:首先新建表

CREATE TABLE IF NOT EXISTS `nns_ad_log_count` (

`nns_id` char(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT '广告ID',

`nns_access_type` tinyint(4) NOT NULL COMMENT '0:5m 1:1h 2:24h=1d',

`nns_access_day` date NOT NULL COMMENT '哪一天的',

`nns_access_index` int(11) NOT NULL COMMENT '间隔数,5m 1h 1d=24h',

`nns_access_count` int(11) NOT NULL

) ENGINE=InnoDb DEFAULT CHARSET=utf8;

这步是OK的.

接着因为项目扩展,增加了1个字段,同时需要修改一个表的字段名和另外几个表的default 默认值和类型

ALTER TABLE `nns_ad_log_count` CHANGE `nns_id` `nns_ad_id` CHAR( 32 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT '广告ID';

上面这步,是用的phpmyadmin添加的字段后生成的一句sql, 看上去是没问题的,复制到word里面,再拿到mysql里面执行一下

test.jsp?url=http%3A%2F%2Fimg.my.csdn.net%2Fuploads%2F201209%2F17%2F1347852286_4685.jpg&refer=http%3A%2F%2Fblog.csdn.net%2Frainysia%2Farticle%2Fdetails%2F7987023

test.jsp?url=http%3A%2F%2Fblog.csdn.net%2Frainysia%2Farticle%2Fdetails%2F7987023%2Ffile%3A%2FC%3A%2Fusers%2Ftom%2FAppData%2FTencent%2FUsers%2F1936732%2FQQ%2FWinTemp%2FRichOle%2F9UFXKK2%5DBTVK%7EFHCJDKV6_L.jpg&refer=http%3A%2F%2Fblog.csdn.net%2Frainysia%2Farticle%2Fdetails%2F7987023

报错了.百思不得其解,

为什么会这样子呢?

3: 错误分析.

生成的sql,是干净的, 途中同事只粘贴进了word.

于是手写了一遍这个sql,并且在mysql里面运行 (为了测试,我复制了上面的表结构,并且新建了一个测试的表`nns_ad_log_count1`)

test.jsp?url=http%3A%2F%2Fimg.my.csdn.net%2Fuploads%2F201209%2F17%2F1347853461_3715.jpg&refer=http%3A%2F%2Fblog.csdn.net%2Frainysia%2Farticle%2Fdetails%2F7987023

运行正常

同事只复制了一次,粘贴到了word (libreoffice)

我重复一下他的动作

"1. 先用浏览器打开phpmyadmin,在phpmyadmin里面直接修改一次,产生sql语句"

"2. 在phpmyadmin 里面,复制生成的sql到系统的剪贴板缓存"

"3. 粘贴进word"

"4. 重复其他的修改操作,重复1,2,3步"

"5. 把整个word发送给我"

"6. 我把word里面的sql拷贝出来,运行 "

"7. 报错"

打开word,发现sql的语句的空格在word里面高亮了

test.jsp?url=http%3A%2F%2Fimg.my.csdn.net%2Fuploads%2F201209%2F17%2F1347853885_1366.jpg&refer=http%3A%2F%2Fblog.csdn.net%2Frainysia%2Farticle%2Fdetails%2F7987023

但是在mysql里面直接执行并没能看见这个东西,在phpmyadmin里面执行上面的sql

test.jsp?url=http%3A%2F%2Fimg.my.csdn.net%2Fuploads%2F201209%2F17%2F1347854027_6439.jpg&refer=http%3A%2F%2Fblog.csdn.net%2Frainysia%2Farticle%2Fdetails%2F7987023

空格显示出来了,原来是这个?

自此问题已经明了.sql语句在复制到word后给污染了. 但是为什么会这样子污染呢? 发现只有word粘贴进去后,会把utf8下的空格换成?

这个应该是linux下的office工具的问题, 这里就不再陈述了

4: 后记, 在linux下做开发提交的sql语句,

建议复制到vim里面查看详细的格式,

或者更简单的,复制出来后,在浏览器地址栏粘贴一次再复制进word来提交文档.以免sql变脏出错.

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值