2015-02-11 28 views
-3

我试图将学生数据插入以父键作为外键的表中。父数据在同一个JSON对象中发送,其中包含一个学生数组。我想选择通过将父数据写入数据库发送的同一对象的父Id,然后选择地址和名字与发送的相同的Id。另外如果你认为我应该采取更有效的方式,欢迎。另外,我对节点以及HTTP服务器的工作原理也很陌生。 代码获取JSON对象如何在节点js的MySQL查询中使用多个变量

router.post('/scholarship', function(req, res) {   //post request to /members... use as model for /application, etc 
console.log('post to api/scholarship'); 
console.log(req);   //req.body is the data you handle (save to mysql database) 
res.send(req.body); 
scholarReq = (req.body);}); 

代码写入到数据库

function insertIntoStudent(jsonpack){ 
var parentId; 
parentId = connectToDatabase.query("SELECT memberId FROM Members WHERE address = ? AND firstName = ?", [jsonpack.user.address , jsonpack.user.firstName]); 
for (var i = 0; i > jsonpack.user.students.length; i++){ 
    if (jsonpack.user.student[i].first != ""){ 
     connectToDatabase.query("INSERT INTO Students(firstName) VALUES (?)",[jsonpack.user.student[i].first]); 
    } 
    if (jsonpack.user.student[i].last != ""){ 
     connectToDatabase.query("INSERT INTO Students(lastName) VALUES (?)",[jsonpack.user.student[i].last]); 
    } 
    if (jsonpack.user.student[i].grade != ""){ 
     connectToDatabase.query("INSERT INTO Students(grade) VALUES (?)",[jsonpack.user.student[i].grade]); 
    } 
    if (jsonpack.user.student[i].unit != ""){ 
     connectToDatabase.query("INSERT INTO Students(unit) VALUES (?)",[jsonpack.user.student[i].unit]); 
    } 
} 

任何帮助是巨大的。谢谢你的时间!

+0

我的意思是,如果该参数选项不工作,你总是可以回落到connection.escape(...) – 2015-02-11 19:12:45

回答

0

如果我正确理解你的问题,你的意思是这样

for (var i = 0; i > jsonpack.user.students.length; i++){ 
    var user = jsonpack.user.student[i]; 
    connectToDatabase.query("INSERT INTO Students(firstName,lastname,grade,unit) VALUES (?,?,?,?),[user.first,user.last,user.grade,user.unit]) 
} 
相关问题