2016-04-15 6 views
1

Ich versuche, Daten in die Datenbank durch Knoten JS einzufügen. Code funktioniert gut und zeigt "Record Insert" msgs, aber keine Zeilen werden in MySQL aktualisiert.Node JS MySQL - Einfügen von Daten .. Keine Zeilen Updates in der Datenbank

Dies ist der Code, wo ich Einfügevorgang bin Durchführung

connection.query('SELECT * FROM menu WHERE item_name=\'' + userResponces[2].toLowerCase() + '\'', function(err, rows){ 
     if (err) throw err; 
     else{ 
      i_id = rows[0].item_id; 
      console.log('i_id ' + i_id); 


    connection.query('INSERT INTO customer VALUES(default,' + c_name + ',' + c_addr + ',' + c_mob + ')', function(err, res){ 
     if(err.fatal){ 
      console.log(''+err.message); 
     } 
     else{ 
      console.log("Record Inserted"); 


    connection.query('SELECT MAX(customer_id) AS c_id FROM customer', function(err, res){ 
     if(err) throw err; 
     else{ 
      c_id = parseInt(res[0].c_id) + 1; 
      console.log('c_id ' + c_id); 


    console.log(i_id + ' ' + c_id + ' ' + qty); 
    connection.query('INSERT INTO order1() VALUES(default,' + i_id + ',' + c_id + ',' + qty + ',1)', function(err, res){ 
     if(err) throw err; 
     else 
      console.log("Record Inserted"); 
    }); 
      } 
    }); 
     } 
    });  
      } 
    }); 

In obigem Code SELECT-Anweisung perfekt funktioniert, also zweifellos kein Fehler in Verbindung. Dies ist immer noch für die Verbindung.

var mysql = require('mysql'); 
var connection = mysql.createConnection({ 
    host  : 'localhost', 
    user  : 'nodeuser', 
    password : 'password', 
    database : 'foodorder' 
}); 

connection.connect(function(err){ 
if(!err) { 
    console.log("Database is connected ...");  
} else { 
    console.log("Error connecting database ...");  
} 
}); 

Antwort

0

Sie erste Bedingung Tests err.fatal. Wenn die Abfrage jedoch einen SQL-Fehler wie ER_NO_SUCH_TABLE zurückgibt, hat err-Objekt keine fatale Eigenschaft.

{ [Error: ER_NO_SUCH_TABLE: Table 'bad_table_name' doesn't exist] 
    code: 'ER_NO_SUCH_TABLE', 
    errno: 1146, 
    sqlState: '42S02', 
    index: 0 } 

So, hier sollten Sie auf err testen anstatt err.fatal

connection.query('INSERT INTO customer VALUES(default,' + c_name + ',' + c_addr + ',' + c_mob + ')', function(err, res){ 
    if (err){ 
     return console.log(err); 
    } 
    else{ 
     console.log("Record Inserted"); 
    // ... 
}); 

Btw, denken über escaping values:

connection.query(
    'INSERT INTO customer VALUES(default, ?, ?, ?)', 
    [c_name, c_addr, c_mob], 
    function(err, res) { 
     //... 
    } 
); 
+0

Vielen Dank für die Hilfe :) –

Verwandte Themen