在整数/双绑定类型上使用通配符LIKE%是错误的

时间:2016-08-05 03:04:53

标签: php sql prepared-statement

我正在尝试为搜索页面创建一个准备好的语句。如果用户没有指定要搜索的价格金额,我希望它忽略,所以我这样做:

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时尝试使用?

0 个答案:

没有答案