今天遇到个很奇怪的问题,在使用mysql的nodejs模块的时候,执行一条插入DateTime值到数据库的语句后,数据库里面添加完成的值显示为乱码,并且会影响后面列值的显示,简化后的代码如下:
var mysql = require('mysql'); var connection = mysql.createConnection({ host : '----------', user : '----------', password : '----------', database : '----------', charset : 'utf8' }); connection.connect(); connection.query('insert into us_thjlgl SET ldsj = NOW()', function(err,res) { if (err) throw err; console.log(res); }); connection.end();
此时在数据库里面可以看到刚才添加的时间值为乱码:
并且会破坏后续值的数据,执行语句insert into us_thjlgl SET bjfhm="成都" , ldsj = NOW() , thsj = 100
后,可以在数据库里面发现刚刚插入的三条数据:
数据"成都"并没有受影响,数据100被破坏成了另一个值。
数据库的字符集都是utf8,包括代码。字段ldsj 的数据类型为 datetime
mysql模块版本为:"^2.12.0"
网上找了很多答案都不管用。所以到这里来请教下。
谢谢