Variable MySQL Query provoque une erreur
Question
I ont une application utilisant Node.js noeud-mysql pour interroger une base de données MySQL.
Problème: Il semble que quand je fais le nom de la table dans la requête une variable, les choses ne fonctionnent plus. Est-ce que je rate quelque chose?
travail sur le code Node
client.query('SELECT * from tableA',
function(error, results, fields) {
if (error)
throw error;
callback(results);
});
Non-travail Code de noeud
client.query('SELECT * from ?',
[ tableA ],
function(error, results, fields) {
if (error)
throw error;
callback(results);
});
La solution
Vous pouvez probablement ajouter le nom de la table à la chaîne (code pseudo, je ne sais pas Node.js)
client.query('SELECT * from ' + [tablaA],
function(error, results, fields) {
if (error)
throw error;
callback(results);
});
Autres conseils
Ils raison pour laquelle il ne fonctionne pas est assez clair.
La requête du code non-travail sera:
SELECT * de 'tableA'
Une solution est celle de @Andreas, mais vous aurez le même problème dans une déclaration ou où insérer pour d'autres valeurs que vous ne voulez pas être échappé comme valeur « null ». (Converti en une chaîne)
Consultez la source Format && échapper à des œuvres noeud-mysql.