sql >> Databasteknik >  >> RDS >> Mysql

Node-mysql infogningsfråga med två värden?

Vad du gör fel är att du försöker sammanfoga dina två värden till en enda sträng och få den strängen ersatt i din enda ? . Om du använder en enda ? , måste du skicka in ett objekt där objektets parametrar är desamma som databasfältnamnen.

Jag skulle göra så här:

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

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

});

Du kan också göra det så här med en array istället för ett objekt:

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

});

eller så här:

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

});

Men jag tycker att jag använder en enda ? tillsammans med ett objekt är mer läsbar.



  1. En recension av de nya analytiska fönsterfunktionerna i MySQL 8.0

  2. skenor 3; aktivt rekord; var; NOT EQUAL-villkorsjämförelse mellan två kolumner i databasen

  3. Hibernate Fel vid exekvering av DDL via JDBC Statement

  4. Bitwise Flags övergivna?