我在Node.js
上创建了一个服务器。我使用SQL Server。我想创建一个SQL查询,通过给定的输入找到图书。当我写我的查询错误是:
名称:“错误”,处理程序名称:'有关错误消息',编号:207,国家:1、班级:16、留言:“列名称”%@param4%“无效。",服务器名称:'桌面-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;
}
我试着解决这个问题。但是我不知道为什么服务器抛出这个异常。有什么建议吗?
2条答案
按热度按时间eoxn13cs1#
共享代码示例的主要问题是,如果您将模板文本与静态值一起使用,则每个nvarchar列值都应该包含在单引号
''
中。则代码将如下所示:
但是这个代码有sql注入漏洞,所以要防止它。使用参数来克服这个问题。
所以你的代码如下所示:
fv2wmkja2#
我认为问题出在建设的要求上。
参数的使用应该可以解决这个问题。