【发布时间】:2021-12-13 11:50:27
【问题描述】:
好的,所以我对我的搜索页面进行了以下查询:
SELECT * FROM `posts` WHERE `ad_price` >= 0 AND `ad_price` <= 300
这部分显示了基于添加这些家伙的不同结果:“”
>= 0 AND `ad_price` <= 300
如果我说>= 0 AND `ad_price` <= 300
数据返回 0 到 30 之间的任何值,但如果我说 >= "0" AND `ad_price` <= "300" 它会得到高达 10,000 和 2000 等的数字。为什么?
这是我完全准备好的 PHP 语句(我知道它们被视为字符串,但如果它在准备好的语句中,我该如何更改):
$query = "SELECT * FROM `posts` WHERE `ad_title` LIKE CONCAT('%',?,'%') AND `ad_brand`
LIKE CONCAT('%',?,'%') AND `ad_price` >= ? AND `ad_price` <= ?";
$get_posts = $conn_posts->prepare($query);
$get_posts->bind_param("ssss", $title, $brand, $min_range, $max_range);
【问题讨论】:
-
如果将数字放在引号中,它们将被视为字符串而不是数字。字符串比较与数字比较的工作方式不同。显然我们看不到表模式或示例数据,但这正是我所期望的。附:这个好像和PHP没关系吧?
-
@ADyson 因为我需要它来进行搜索
-
@ADyson 对不起,我会删除你的权利我不小心添加的 php 标签。
-
除了现在您向我们展示了一些 PHP 代码...如果相关,请将其编辑到您的问题(不是 cmets)中
-
@ADyson 好的,我会把它添加到我的帖子中