【发布时间】:2018-01-26 21:11:57
【问题描述】:
我的问题是绑定参数。当我不使用任何过滤器(并且不需要绑定任何东西)时,我的代码工作正常,但是当我在查询中使用参数时不会得到任何东西。
我做了这样的事情:
if(count($nameFilters) > 0){
$nameParameters = "Name IN (";
for($i=0; $i<count($nameFilters); $i++){
$nameParameters .= "name" . $i;
if($i < count($nameFilters)-1)
$nameParameters .= ",";
}
$nameParameters .= ") ";
}
$query = "SELECT id, Name, Size, Color FROM " . $this->table_name . " " . $where . " ";
if(count($nameFilters) > 0)
$query.= $nameParameters;
$stmt = $this->connection->prepare($query);
if(count($nameFilters) > 0){
for($i = 0;$i<count($nameFilters);$i++){
$tmp_string = $nameFilters[$i];
$tmp_string=htmlspecialchars(strip_tags($tmp_string));
$tmp_string = "%{$tmp_string}%";
$stmt->bindParam("name" . $i, $tmp_string);
}
}
我的 $query 值是:
SELECT id, Name, Size, Color FROM shoes
WHERE Name IN (name0)
【问题讨论】:
-
请提供minimal reproducible example 显示您尝试过的内容。
标签: php mysql arrays filter parameters