我正在尝试返回我创建的函数的结果。当我使用console.log(results)时,我可以看到DB结果,但是由于某种原因,函数并没有返回它。
const get_non_showing_stores = (field_name) => {
const connection = mysql_conn();
const query = `SELECT * from stores WHERE ${field_name} = 0`;
connection.query(query,(err,results) => {
return results;
});
};发布于 2021-11-12 23:59:47
在JavaScript中,字符串如下所示:
`SELECT * from stores WHERE ${field_name} = 0 `;在SQL中解析时,它看起来如下所示:
SELECT * from stores WHERE someFieldName = 0 `;其中${field_name}返回任何field_name,所以在SQL中,这是一个语法错误,其中没有定义"someFieldName“。
您需要在查询的两边加上引号:
const get_non_showing_stores = (field_name) => {
const connection = mysql_conn();
const query = `SELECT * from stores WHERE '${field_name}' = 0;`;
connection.query(query, (err, results) => {
return results;
});
};编辑:您似乎是在尝试返回selection field_name的结果。您在函数中调用的"field_name“没有在您的SQL数据库中定义。
此外,您将在函数内部从connection.query返回值。不能返回子函数/事件侦听器的值。
您需要在要调用函数get_non_showing_stores()的代码中调用connection.query,然后对返回值执行您想要的操作。
另一个好的SQL语法技巧是:应该将所有内置的SQL语法大写。就在这里:
SELECT * from stores WHERE ${field_name} = 0;
^^^^
Missing capitalization并且总是应该在语法的末尾放一个分号:
SELECT * FROM stores WHERE ${field_name} = 0
^
Missing semicolonhttps://stackoverflow.com/questions/69950208
复制相似问题