MySQL Query中的变量会导致错误

时间:2011-11-29 21:30:18

标签: mysql node.js express

我有一个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 个答案:

答案 0 :(得分:3)

你可能只是将表名追加到字符串中(伪代码,我不知道node.js)

client.query('SELECT * from ' + [tablaA],
                function(error, results, fields) {
                    if (error)
                        throw error;
                    callback(results);
                });

答案 1 :(得分:0)

他们之所以说它不能正常工作是非常清楚的。

来自非工作代码的查询将是:

  

来自'tableA'的SELECT *

解决方案是来自@Andreas的解决方案,但是你会在where语句或插入中遇到同样的问题,因为其他值不希望像“null”值那样被转义。 (转换成字符串)

同样的问题here

查看source格式&&从node-mysql中逃脱。