SQL 查询在它应该返回的时候没有返回任何结果

Posted

技术标签:

【中文标题】SQL 查询在它应该返回的时候没有返回任何结果【英文标题】:SQL query not returning any results when it should 【发布时间】:2013-10-11 01:34:37 【问题描述】:

我的 php 脚本中有一个 sql 查询,其中包含这一行:

WHERE beerStyle = \"$styleName\" AND rating > 0

正在查找的样式名称是:

Fresh "Wet" Hop Ale

上面存储的内容已经写在我的数据库中。我的问题是我认为当它在数据库中查找时引号会以某种方式混淆,所以它认为现在有具有该名称的样式。

【问题讨论】:

Double quotes are the wrong quotes to use here. 这并不能回答您的问题,但请注意:此代码存在 sql 注入缺陷。 使用 mysql_real_escape_string($styleName) 【参考方案1】:

利用mysqli_real_escape_string()

$styleName=mysqli_real_escape_string($styleName);

你的查询是这样的。

WHERE beerStyle = $styleName AND rating > 0

【讨论】:

【参考方案2】:

也许你可以试试

$query = "SELECT * FROM beers WHERE beerStyle = '" .$styleName. "'";

【讨论】:

以上是关于SQL 查询在它应该返回的时候没有返回任何结果的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的查询没有返回任何结果?

SQL没有找到结果

SQL Server 过程不返回任何结果

没有返回任何内容时,SQL Server 查询运行速度较慢

即使 sql 查询不应该返回任何记录,JUnit 测试仍然通过

休眠选择查询不返回任何内容