У меня есть массив целых чисел от 0 до 255 в javascript;
var arr = [249, 13, 105, 170];
И требуется хранить эти данные в базе данных mysql в соответствии с этим правилом:
Таким образом, если длина массива равна 4, то размер данных BLOB-объектов в базе данных MySQL должен составлять 4 байта.И он отлично работает с числами меньше 128.
var res = "";
for(var i = 0; i < arr.length; i++) {
res += String.fromCharCode(arr[i]);
}
Но числа от 128 до 256 занимают 2 байта.
Я попытался использовать буфер nodejs
var Buffer = require('buffer').Buffer,
buf = new Buffer(arr.length);
for(var i = 0; i < arr.length; i++) {
buf[i] = arr[i];
}
buf.toString('binary');
но результат тот же.Я понятия не имею, как заставить это работать.
для хранения данных в базе данных mysql Я использую node-mysql
var Client = require('mysql').Client,
client = new Client();
client.user = DB_USER;
client.password = DB_PASS;
client.host = DB_HOST;
client.connect(function(error, results) {
if(error) {
client.end();
return;
}
client.query('USE ' + DB_SCHEME, function(error, results) {
if(error) {
client.end();
return;
}
var sql = "INSERT INTO b SET `data` = ?";
var values = [buf];
client.query(sql, values,
function(error, results) {
if(error) {
return;
}
return;
}
);
});
});
У вас есть идеи?