【发布时间】:2023-02-06 00:17:21
【问题描述】:
我在Node.js 上创建了一个服务器。我使用 SQL 服务器。我想创建一个通过给定输入查找书籍的 sql 查询。当我写我的查询错误是:
名称:'错误', handlerName: 'onErrorMessage', 号码:207, 状态:1, 班级:16, 消息:“无效的列名‘%@param4%’。”, serverName: 'DESKTOP-PQSULQS\SQLEXPRESS', 过程名称:'', 行号:1
这是一个搜索方法:
async function searchBook(input){ let result = await sql.query `SELECT * FROM dbo.Books WHERE Title = ${input} OR Kind = ${input} OR Author = ${input} OR Title LIKE "%${input}%"` ; return result.recordset; }我试图解决这个问题。但我不知道为什么服务器抛出这个异常。有什么建议吗?
【问题讨论】:
-
查询似乎是错误的。你缺少引号。我建议:(1) 编写并运行针对数据库的查询。 (2) 复制工作查询并使用 javascript 运行它。 (3) 修改查询以接收您的输入参数。 (4) 研究如何防止 SQL 注入,因为该格式会欢迎这些攻击。
标签: javascript sql node.js backend