Variable en la consulta mysql causa error
Pregunta
Tengo una aplicación Node.js usando Node-Mysql para consultar una base de datos MySQL.
Problema: Parece que cuando hago el nombre de la tabla en la consulta una variable, las cosas dejan de funcionar. ¿Me perdí algo?
Código de nodo de trabajo
client.query('SELECT * from tableA',
function(error, results, fields) {
if (error)
throw error;
callback(results);
});
Código de nodo no laboral
client.query('SELECT * from ?',
[ tableA ],
function(error, results, fields) {
if (error)
throw error;
callback(results);
});
Solución
Probablemente podría agregar el nombre de la tabla a la cadena (código pseudo, no conozco node.js)
client.query('SELECT * from ' + [tablaA],
function(error, results, fields) {
if (error)
throw error;
callback(results);
});
Otros consejos
Ellos razonan por qué no funciona es bastante claro.
La consulta del código no laboral será:
Seleccione * de 'Tablea'
Una solución es la de @Andreas, pero tendrá el mismo problema en una declaración Where o insertar para otros valores que no desea que se escape como el valor "nulo". (convertir en una cadena)
El mismo problema aquí
Revisar la fuente Cómo funciona el formato && escape del nodo-mysql.