Переменная в MySQL Query вызывает ошибку - PullRequest
2 голосов
/ 30 ноября 2011

У меня есть приложение 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);
                });

Ответы [ 2 ]

3 голосов
/ 30 ноября 2011

Возможно, вы просто добавите имя таблицы в строку (псевдокод, я не знаю node.js)

client.query('SELECT * from ' + [tablaA],
                function(error, results, fields) {
                    if (error)
                        throw error;
                    callback(results);
                });
0 голосов
/ 30 ноября 2011

Они объясняют, почему это не работает, довольно ясно.

Запрос из нерабочего кода будет:

SELECT * from 'tableA'

Решение - это решение от @Andreas, но у вас будет та же проблема в операторе where или вставке для других значений, которые вы не хотите экранировать, например, как «нулевое» значение. (преобразовать в строку)

Та же проблема здесь

Проверьте источник , как работает формат && escape от node-mysql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...