Variable in MySQL -Abfrage verursacht Fehler
Frage
Ich habe eine Node.js-App, die Node-Mysql verwendet, um eine MySQL-Datenbank abzufragen.
Problem: Es scheint, dass wenn ich den Tabellennamen in der Abfrage eine Variable mache, die Dinge nicht mehr funktionieren. Habe ich etwas verpasst?
Arbeitsknotencode
client.query('SELECT * from tableA',
function(error, results, fields) {
if (error)
throw error;
callback(results);
});
Nicht arbeitender Knotencode
client.query('SELECT * from ?',
[ tableA ],
function(error, results, fields) {
if (error)
throw error;
callback(results);
});
Lösung
Sie könnten wahrscheinlich nur den Tabellennamen an die Zeichenfolge anhängen (Pseudo -Code, ich kenne Node.js nicht)
client.query('SELECT * from ' + [tablaA],
function(error, results, fields) {
if (error)
throw error;
callback(results);
});
Andere Tipps
Sie begründen, warum es nicht funktioniert, ist ziemlich klar.
Die Abfrage aus dem nicht arbeitenden Code ist:
Wählen Sie * aus 'Tablea' aus
Eine Lösung ist die von @Andreas, aber Sie haben das gleiche Problem in einer WHERE -Anweisung oder in einem Einfügen für andere Werte, die Sie nicht wie "Null" -Werte entkommen möchten. (in eine Zeichenfolge konvertieren)
Gleiches Problem hier
Probier das aus Quelle Wie Format und Flucht aus Node-Mysql funktionieren.