ช่วยดูหั้ยด้วยคับ เก็บดาต้า เข้าดาต้าเบสไม่ได้ ใช้ node.js ต้องสร้าง tables เพิ่มไหม หรือ เพิ่ม column อีกหรือป่าวคับ งงมาหลายวันแล้วคับ รบกวนผู้รู้ชี้แนะคับ
var net = require('net');
var sql = require('mysql');
var HOST = '192.168.10.199';
var PORT = 5555;
var MYSQL_HOST = 'localhost';
var MYSQL_PORT = 3306;
var MYSQL_USER = 'root';
var MYSQL_PASS = '123456';
var MYSQL_DB = 'gps';
var MYSQL_TABLE = 'gps_data2';
var result = sql.createClient({
host: MYSQL_HOST,
port: MYSQL_PORT,
user: MYSQL_USER,
password: MYSQL_PASS
});
function INSERT_TO_DB(strData){
console.log('DATA: ' + strData);
var arr_strData = strData.toString().split(',')
//console.log(arr_strData.length);
if(arr_strData.length >= 21){
var GPRS_IP = arr_strData[1];
var DATA_DATE = arr_strData[2];
var GPS_IMEI = arr_strData[3];
GPS_IMEI = GPS_IMEI.substring(5,20);
result.query('USE '+ MYSQL_DB);
result.query('INSERT INTO '+ MYSQL_TABLE +' (data_00, data_01) VALUES ("data0", "data1")');
}
}
function startTime(){
var strDate = new Date();
var dd = strDate.getDate();
var mm = strDate.getMonth()+1;
var yy = strDate.getFullYear();
var h = strDate.getHours();
var m = strDate.getMinutes();
var s = strDate.getSeconds();
dd = addZeroTime(dd);
mm = addZeroTime(mm);
m = addZeroTime(m);
s = addZeroTime(s);
var strTime = yy + '-' + mm + '-' + dd + ' ' + h + ':' + m + ':' + s;
return strTime;
}
function addZeroTime(i){
if(i<10){
i = "0" + i;
}
return i;
}
net.createServer(function(sock) {
console.log('CONNECTED: ' + sock.remoteAddress +':'+ sock.remotePort);
sock.on('data', function(data) {
allData = sock.remoteAddress + ',' + sock.remotePort + ',' + startTime() + ',' + data;
INSERT_TO_DB(allData);
});
}).listen(PORT, HOST);
console.log('Server listening on ' + HOST + ':' + PORT);
Data
DATA: 110.49.224.237,11127,2013-10-01 23:18:43,$$t140,862170016496638,AAA,35,13.134240,100.966158,131001161022,A,8,14,0,57,1,35,67257202,20679365,520|1|6A42|5638,0000,0004|0008||02E0|0224,*33
Tag : Java, JavaScript
Date :
2013-10-01 23:34:42
By :
speedfaster
View :
1296
Reply :
6
Date :
2013-10-01 23:39:46
By :
speedfaster
เข้าไม่ได้หรือเข้าแล้วค่าเป็น 0 ครับ
ถ้าเข้าเป็น 0 ให้ทดสอบใส่ตัวเลขไปครับ เพราะฟิลค์ดพวกนี้อาจเป็น type int ก็ได้ครับ
VALUES ("data0", "data1")');
เป็น
VALUES ("2", "9")');
Date :
2013-10-02 21:49:04
By :
xbeginner01
ลองเปลี่ยน VALUES ("2", "9")'); ก็เก็บ เป็น 2 กับ 9 ครับ
แต่มะยอมเอาดาต้าจริงๆที่ส่งมาไปเก็บ ต้องแก้โค้ดตรงส่วนไหนอีกบ้างคับ
รบกวนชี้แนะด้วยครับ
Date :
2013-10-03 11:29:34
By :
speedfaster
result.query('INSERT INTO '+ MYSQL_TABLE +' (data_00, data_01) VALUES ("data0", "data1")'); แก้ตรงนี้ครับ
ตามที่โค้ดเท่าที่เห็นตอนแยกตัวแปร string เป็น array คุณได้ค่าต่างๆ แล้วครับดังนั้นก็แค่แทรกค่านั้นลงไปครับ
จากกำหนดค่าตัวแปรตรงนี้
Code (Java)
var GPRS_IP = arr_strData[1];
var DATA_DATE = arr_strData[2];
var GPS_IMEI = arr_strData[3];
GPS_IMEI = GPS_IMEI.substring(5,20);
//data_00 ,data_01 ไม่รู้อยู่ส่วนไหนของ arr_strData ให้ไปไล่เช็คเอานะครับ
var sql ="INSERT INTO"+MYSQL_TABLE+" (GPR_IP,DATA_DATE,GPS_IMEI,DATA_00,DATA_01) VALUES "+"( '"+GPRS_IP+"','"+DATA_DATE+"','"+GPS_IMEI +"','"+5+"','"+7+"' ) " ;
result.query(sql);
Date :
2013-10-03 12:13:26
By :
xbeginner01
ลองแก้เป็นแบบนี้แล้ว ก็ยังไม่ได้คับ
ดาต้าเบสยังเก็บเป็น null ครับ
รบกวนชี้แนะอีกรอบด้วยครับ
function INSERT_TO_DB(strData){
console.log('DATA: ' + strData);
var arr_strData = strData.toString().split(',')
console.log(arr_strData.length);
if(arr_strData.length >= 21){
var GPRS_IP = arr_strData[1];
var DATA_DATE = arr_strData[3];
var GPS_IMEI = arr_strData[5];
GPS_IMEI = GPS_IMEI.substring(5,20);
var data_00 = arr_strData[9];
var data_01 = arr_strData[10];
result.query('USE '+ MYSQL_DB);
result.query('INSERT INTO '+ MYSQL_TABLE +' (ID, GPRS_IP, DATA_DATE, GPS_IMEI, DATA_00, DATA_01) VALUES '"+"' ('"GPRS_IP"', '"DATA_DATE"', '"GPS_IMEI"', '"data_00"', '"data_01"')');
result.query(sql);
}
}
Date :
2013-10-18 11:10:31
By :
speedfaster
ไม่มีใครช่วยเลยหรอครับ
Date :
2013-10-30 17:09:28
By :
speedfaster
Load balance : Server 01