我一直在尝试在MySQL上使用类似查询,但它与数据库的模式不匹配,并且仅在给出了确切的关键字(%符号不起作用)时才有效
我尝试了Concat方法,将反斜杠用于特殊字符,+符号以及我可以找到的所有其他方法,但是仍然无法使用
connection.query('SELECT * FROM job where domainname like ?', '%' + request.body.domain + '%' ,function(error, results){
response.render('./results',{rows:results});
});
and on front end part
<tbody>
<% for(var i=0; i < rows.length; i++) { %>
<tr>
<td><%= i %></td>
<td><%= rows[i].companyname %></td>
<td><%= rows[i].domainname %></td>
</tr>
<% } %>
错误:无法读取未定义的属性“ length” 如果我不使用%并且不尝试模式匹配,然后显示结果,它将起作用。
答案 0 :(得分:0)
Pushkar,欢迎使用StackOverflow。我也许可以对您的查询有所帮助。以我的经验,MySQL中的“ LIKE”运算符的工作方式如下:
长度错误是由于“行”没有值所致。一个好的防御性编程习惯是永远不要相信填充了第3部分的数据。就像我们从不信任用户输入一样,从不信任第三方数据。在这种情况下,请对SQL select进行检查。如果“行”没有值,请不要尝试渲染tbody。
返回到SQL查询;尝试将所有值硬编码为字符串文字。查看所查询的公式是否返回任何值。然后将其拉成参数化版本。
答案 1 :(得分:0)
尝试将值保留在数组中
public class User
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
[Range(18,99)]
public string Age { get; set; }
[MaxLength(250)]
public string Address { get; set; }
}
打印错误和结果(如果不起作用)
有关更多信息,请转到-https://www.npmjs.com/package/mysql#performing-queries