Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Node-Mysql-Einfügungsabfrage mit zwei Werten?

Was Sie falsch machen, ist, dass Sie versuchen, Ihre beiden Werte zu einer einzigen Zeichenfolge zu verketten und diese Zeichenfolge in Ihren einzelnen ? zu ersetzen . Wenn Sie ein einzelnes ? verwenden , müssen Sie ein Objekt übergeben, bei dem die Parameter des Objekts dieselben sind wie die Datenbankfeldnamen.

Ich würde es so machen:

let payload = {
    UsernameDB: data.RegUsername,
    PasswordDB: data.Regpassword
};

connection.query("INSERT INTO Codify SET ?", payload, function(err, rows) {

});

Sie können es auch so mit einem Array anstelle eines Objekts machen:

let sql = "INSERT INTO Codify (UsernameDB, PasswordDB) VALUES (?, ?)";
connection.query(sql, [ data.RegUsername, data.Regpassword ], function(err, rows) {

});

oder so:

let sql = "INSERT INTO Codify SET UsernameDB = ?, PasswordDB = ?";
connection.query(sql, [ data.RegUsername, data.Regpassword ],  function(err, rows) {

});

Aber ich finde mit einem einzigen ? zusammen mit einem Objekt ist besser lesbar.