Me conecté a la base de datos en MySQL y pude ingresar datos en una tabla. Sin embargo, no puedo ingresar datos en otra tabla cuando parece que estoy usando exactamente el mismo método para lograr la entrada. A continuación se muestra el código que funciona:
const mysql = require('mysql'); const connectionPool = mysql.createPool({ connectionLimit: 1, host: "localhost", user: "dg", password: "123456", database: "legends_database", debug: false }); exports.addUser = (Username, Email, Password, response) => { //Build query let sql = "INSERT INTO user (Username, Email, Password) " + " VALUES ('" + Username + "','" + Email + "'," + Password +")"; //Execute query connectionPool.query(sql, (err, result) => { if (err){//Check for errors let errMsg = "{Error: " + err + "}"; console.error(errMsg); response.status(400).json(errMsg); } else{//Send back result response.send("{result: 'User added successfully'}"); } }); }Copié este código e hice cambios y debajo está el código que me da un error.
const mysql = require('mysql'); const connectionPool = mysql.createPool({ connectionLimit: 1, host: "localhost", user: "dg", password: "123456", database: "legends_database", debug: false }); exports.addPost = (Question_Title, Answer_Paragraph, response) => { //Build query let sql = "INSERT INTO answer (Question_Title, Answer_Paragraph) " + " VALUES ('" + Question_Title + "','" + Answer_Paragraph +")"; //Execute query connectionPool.query(sql, (err, result) => { if (err){//Check for errors let errMsg = "{Error: " + err + "}"; console.error(errMsg); response.status(400).json(errMsg); } else{//Send back result response.send("{result: 'Post added successfully'}"); } }); }Este es el error que estoy recibiendo:
Data received: {"Question_Title":"Test_Question","Answer_Paragraph":"Test_Answer"} {Error: 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 ''Test_Answer)' at line 1}Al principio, escribir consultas como esta es propenso a la inyección de SQL, así que deshágase de esto. Pero si lo está utilizando solo con fines educativos/de uso propio, este es mi punto: veo un número impar de comillas simples, por lo que parece que el error proviene de allí (el mensaje de error solo dice que tiene un error de sintaxis). Así que trata de escribir tu consulta de esta manera:
let sql = `INSERT INTO answer (Question_Title, Answer_Paragraph) VALUES ("${Question_Title}","${Answer_Paragraph}");