【发布时间】:2017-04-23 19:33:06
【问题描述】:
insertStudentData:function(school_id,studentData,callback){
var _pass_student=Math.random().toString(36).substr(2, 8);
var _pass_father=Math.random().toString(36).substr(2, 8);
var _pass_mother=Math.random().toString(36).substr(2, 8);
var data = [
{ tag: '_father_pass', value : _pass_father },
{ tag: '_mother_pass', value : _pass_mother },
{ tag: '_student_pass', value :_pass_student }];
enc_data.getpass(8, data, function(result){
query= 'call addStudentBulk("'+studentData[12]+'",'+studentData[15]+','+studentData[16]+',"'+studentData[1]+'","'+studentData[3]+'","'+studentData[2]+'","'+studentData[7]+'","' +studentData[4]+'","'+studentData[6]+'","'+studentData[13]+'","'+studentData[8]+'","'+studentData[14]+'","'+studentData[10]+'","'+studentData[11]+'","'+studentData[5]+'","'+studentData[9]+'","'+_pass_student+'","'+_pass_father+'","'+_pass_mother+'","'+result[2]['value']+'","'+result[0]['value']+'","'+result[1]['value']+'",'+school_id+')';
dataAccess.getObject(query,function(status){
if(status!='err')
{
console.log(studentData[12]+' '+studentData[1]+' done');
callback({err:false,data:null});
}
else
{
console.log(studentData[12]+' '+studentData[1]+ ' err');
callback({err:true,data:studentData[12]+' '+studentData[1]+ ' err'});
}
});
}); },
我有一个列名为 varchar(50) 的表。我可以像这样在插入查询中轻松设置希腊字符:
insert into student set name='ΧΡΙΣΤΟΣ ΑΒΕΡΚΙΟΥ';
但是当我通过 in 参数将这个希腊字符串传递给 mysql 存储过程时,它给了我这个错误:
call new_procedure('ΧΡΙΣΤΟΣ ΑΒΕΡΚΙΟΥ');
Error Code: 1366. Incorrect string value: '\xCE\xA7\xCE\xA1\xCE\x99...' for
column 'name_'
这是我的程序:
CREATE DEFINER=`root`@`localhost` PROCEDURE `new_procedure`(in name_ varchar(45) )
BEGIN
INSERT INTO `student` (`student_name`) VALUES (name_);
END
我该怎么做?请帮我。 编辑
我已经将表格设置为utf8; 我正在从 NodeJs 中的 excel 表中导入数据。 excel表包含希腊字符,我想按原样存储它们。这是表结构的图片
【问题讨论】:
-
您的字符串被编码为 UTF-8。您的部分工具链未配置为使用此类编码。请编辑问题并分享:1)您的表定义 2)您设置连接编码的 JavaScript 代码。
-
没关系。如果您重新考虑您的假设,请随时提供所需的信息,我很乐意查看。
-
你还需要什么@ÁlvaroGonzález。 ?
-
如果可能:1) 您的表定义 2) 您设置连接编码的 JavaScript 代码。
-
javascript 代码在上面这里 studentData 是 excel 表的对象是数组的数组(excel 表的行数组)。我通过诸如 studentData[2] 之类的索引来访问。
标签: mysql database stored-procedures parameter-passing