2017-04-25 7 views
0

Ich entwickle eine Web-App mit nodejs und mysql. Die mysql-Verbindung funktioniert einwandfrei, aber die Abfrage läuft nicht ab und zeigt keine Fehler an. Mein Code ist unten aufgeführt. Bitte hilf mir.mysql einfügen funktioniert nicht im Knoten js

var mysql = require("mysql"); 
var con = mysql.createConnection({ 
host: "localhost", 
user: "root", 
password: "", 
database : "db" 
}); 

con.connect(function(err){ 
if(err){ 
     console.log('Error connecting to Db'); 

    return; 
} else { 


var time = Date.now(); 
var post = {userphone: "user", senderphone: "to1", message: "msg", time:time};    
var query = con.query('INSERT INTO chat SET ?', post, function(err, result) { 
    console.log('db added'); 
    console.log(query.sql); 
      }); 
     console.log('Connection established'); 
    } 
}); 

con.end(function(err) { 
    // The connection is terminated gracefully 
    // Ensures all previously enqueued queries are still 
    // before sending a COM_QUIT packet to the MySQL server. 
}); 
+0

INSERT SET ist nicht Standard-SQL- – modsfabio

+0

Ich benutze WERTE statt SET Aber dasselbe Problem. – joe

+0

Haben Sie überprüft, was in der Variablen error kommt? Ich meine hier - query = con.query (.. INSERT QUERY .., post, Funktion (err, result) {if (err) {Wurf err;} else {....} –

Antwort

1

Wenn Sie versuchen, die err in Verbindung drucken es zeigt:

~/Documents/src : $ node testInsert.js 
Connection established 
{ [Error: Cannot enqueue Query after invoking quit.] code: 'PROTOCOL_ENQUEUE_AFTER_QUIT', fatal: false } 
db added 
INSERT INTO chat SET `userphone` = 'user', `senderphone` = 'to1', `message` = 'msg', `time` = 1493132496360 

Offensichtlich Ihre Datenbankverbindung vor der Ausführung Abfrage ist geschlossen zu werden. Sie müssen, dass eine enge Verbindung Block in Abfrageblock bewegen, es ist nach wie diese Abfrage Ausführung zu erzwingen:

con.connect(function(err){ 
    console.log('Connection established'); 
    if(err){ 
     console.log('Error connecting to Db'); 
     return; 
    } else { 
    var time = Date.now(); 
    var post = {userphone: "user", senderphone: "to1", message: "msg", time:time};    
    var query = con.query('INSERT INTO chat SET ?', post, function(err, result) { 
     if(err) console.log(err); 
     console.log('db added'); 
     console.log(query.sql); 
     con.end(function(err) { 
      // The connection is terminated gracefully 
      // Ensures all previously enqueued queries are still 
      // before sending a COM_QUIT packet to the MySQL server. 
     }); 
    }); 
    } 
}); 

Als ich lief es Insertion war erfolgreich:

~/Documents/src : $ node testInsert.js 
Connection established 
db added 
INSERT INTO chat SET `userphone` = 'user', `senderphone` = 'to1', `message` = 'msg', `time` = 1493132632444 
mysql> SELECT * FROM chat; 
+-----------+-------------+---------------------+---------+ 
| userphone | senderphone | time    | message | 
+-----------+-------------+---------------------+---------+ 
| user  | to1   | 0000-00-00 00:00:00 | msg  | 
+-----------+-------------+---------------------+---------+ 
1 row in set (0.00 sec) 
Verwandte Themen