Sembra che dovrebbe essere semplicissimo, e sono rimasto bloccato per circa due ore. Quattro persone separate hanno guardato e non hanno trovato un problema ovvio. Quindi di nuovo mi rivolgo alla comunità SO.INSERISCI IN ERRORE con il nodo mysql
Real simple - Sto solo cercando di inserire i dati in un database mysql tramite mysql-node. Non ricevo errori di connessione e SELECT funziona perfettamente. Il codice utilizzato è:
exports.postNewCast = function(data, res) {
var query = "INSERT INTO cast (name, portrait, role, bio) VALUES ('" + data.name + "', '" + data.portrait + "', '" + data.role + "', '" + data.bio + "');";
console.log(query);
dbConnection.query(query, data, function(err, result) {
if (err) {
console.log(err);
} else {
sendResponse(res, "Cast Member Added", 201);
}
});
};
L'errore in fase di login è:
{ [Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'cast (name, portrait, role, bio) VALUES ('Jessie', 'images/cast/marissa.jpg', 'L' at line 1]
code: 'ER_PARSE_ERROR',
errno: 1064,
sqlState: '42000',
index: 0 }
La parte strana (per me) è che posso copiare dalla mia finestra di terminale (in cui il server è in esecuzione) la console.logged query string, e lo incolla nella riga di comando mysql, e funziona bene. Ho provato a utilizzare GRANT per assicurarmi che il server dell'utente sia in esecuzione con le autorizzazioni e questo non ha fatto nulla. Ho provato a copiare/incollare la sintassi INSERT INTO direttamente dalle origini di lavoro e solo sostituendo i miei campi specifici dei dati. Ho provato a usare i VALORI? opzione, seguito da un oggetto dati e ottenuto lo stesso risultato.
Quindi che stupido errore sto facendo?
Grazie.
aggiungi 'attorno al nome della tabella, come' \ 'cast \' ' –
I tick posteriori erano. Pensavo che intendessi virgolette singole e non funzionava. Ma le zecche posteriori lo hanno fatto. – DrHall