Wygląda na to, że powinno być super łatwe, a ja utknąłem przez około dwie godziny. Cztery oddzielne osoby patrzyły i nie znajdowały oczywistego problemu. Ponownie zwracam się do społeczności SO.INSERT INTO error with mysql-node
Prawdziwe proste - Po prostu próbuję wstawić dane w bazie danych mysql za pośrednictwem węzła mysql. Nie otrzymuję żadnych błędów połączenia, a SELECT działa dobrze. Kod używany jest:
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);
}
});
};
Błąd jest rejestrowane jest:
{ [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 }
Upiorna część (dla mnie) jest to, że mogę skopiować z mojego okna terminala (jeśli serwer jest uruchomiony) console.logged ciąg zapytania i wklej go do wiersza poleceń mysql, i działa dobrze. Próbowałem użyć GRANT, aby upewnić się, że serwer użytkownika działa, ma uprawnienia, a to nie działało. Próbowałem skopiować/wkleić INSERT INTO składnię bezpośrednio ze źródeł roboczych i tylko zastępując moje pola specyficzne dla danych. Próbowałem używać VALUES? opcję, a następnie obiekt danych i uzyskał taki sam wynik.
Więc jaki głupi błąd popełniam?
Dzięki.
dodać 'dookoła nazwy tabeli, np.' \ 'Cast \ '' –
Back ticks to było. Myślałem, że masz na myśli pojedyncze cytaty, i to nie działało. Ale cofnęły się kleszcze. – DrHall