我正在尝试为搜索页面创建一个准备好的语句。如果用户没有指定要搜索的价格金额,我希望它忽略,所以我这样做:
if ($_POST["price"] == ""){
$ItemPrice = "item_price LIKE ?";
}
else
{
$ItemPrice = "item_price = ?";
}
$ItemPrice
将添加到语句中。如果$_POST["price"]
为空(用户未指定),那么我会将%
分配给?所以它变成item_price LIKE %
。它似乎不起作用。绑定类型为Double
。请帮助确认这是否属实,但在double或整数类型上使用通配符是否会使查询失败?
我需要以这种方式对其进行编码,因此如果用户未指定要搜索的价格,则会显示所有结果,而不管价格金额。
编辑:看起来没有答案,所以我将分享我的所作所为。我没有将LIKE语句用于我将在bind / param中使用的double或integer类型字段。它似乎现在有效。我认为错误是在"item_price LIKE ?"
将在bind_param语句中声明为double / integer时尝试使用?