Переменная в запросе MySQL вызывает ошибку
Вопрос
У меня есть приложение Node.js, использующее Node-Mysql для запроса базы данных MySQL.
Проблема: Похоже, что когда я делаю имя таблицы в запросе переменной, все перестает работать. Я что -то упустил?
Код рабочего узла
client.query('SELECT * from tableA',
function(error, results, fields) {
if (error)
throw error;
callback(results);
});
Неработающий код узла
client.query('SELECT * from ?',
[ tableA ],
function(error, results, fields) {
if (error)
throw error;
callback(results);
});
Решение
Вы, вероятно, можете просто добавить имя таблицы к строке (псевдо -код, я не знаю node.js)
client.query('SELECT * from ' + [tablaA],
function(error, results, fields) {
if (error)
throw error;
callback(results);
});
Другие советы
Они разбираются, почему это не работает, довольно ясно.
Запрос из неработающего кода будет:
Выберите * из 'tablea'
Решение - это то, что от @AndReas, но у вас будет та же проблема в операторе, где или вставка для других значений, которые вы не хотите избежать, как «нулевое» значение. (преобразовать в строку)
Та же проблема здесь
Проверьте источник Как работает формат и побег из узла Mysql.