PDO绑定值为';t允许特定参数通过(PHP)
我正在使用PHP和PDO来实现PostgreSQL。当我试图将一个特定的值绑定到查询中时,我的行为变得很奇怪。我所拥有的是:PDO绑定值为';t允许特定参数通过(PHP),php,postgresql,Php,Postgresql,我正在使用PHP和PDO来实现PostgreSQL。当我试图将一个特定的值绑定到查询中时,我的行为变得很奇怪。我所拥有的是: $value[0][$i] = "'%{$filtervalue}%'"; $values[] = & $value[0][$i]; $result = $pdo->prepare($query); $result->bindValue(':condition', $values[0]); $result->bindValue
$value[0][$i] = "'%{$filtervalue}%'";
$values[] = & $value[0][$i];
$result = $pdo->prepare($query);
$result->bindValue(':condition', $values[0]);
$result->bindValue(':starts', $start);
$result->bindValue(':pagesize', $pagesize);
现在,$query
参数返回
SELECT orderDate, shippeddate, shipName,
shipaddress, shipcity, shipcountry
FROM orders WHERE ( shipcity LIKE :condition )
LIMIT :pagesize OFFSET :starts
这正是我想要的。但是,问题在于$vales[0]
参数,因为$pagesize
和$start
工作正常
当我使用$vales[0]
参数执行时,结果不会返回任何结果
然而,当我改变
$result->bindValue(':condition', $values[0]);
到
它适用于该特定条件,结果如图所示
我加倍检查以确保$values[0]
返回'%Bern%'
,它确实返回了
我甚至检查了类型是否为string,是否为
我甚至添加了PDO::PARAM_STR
,但仍然一无所获
我没有办法解释它为什么不工作。2需要更改:
$value[0][$i]=“%${$filtervalue}%”
需要是$value[0][$i]=“%{$filtervalue}%”代码>
及
$values[]=&$value[0][$i]代码>需要是$values[]=$value[0][$i]代码>
注意:-您可以直接使用$value[0][$i]
,无需创建额外变量,请执行以下操作:
$value[0][$i] = "%{$filtervalue}%";
$result = $pdo->prepare($query);
$result->bindValue(':condition', $value[0][$i]);
$result->bindValue(':starts', $start);
$result->bindValue(':pagesize', $pagesize);
$value[0][$i]=“%${$filtervalue}%”$值[]=&$value[0][$i]
需要是$value[0][$i]=“%{$filtervalue}%”$值[]=$value[0][$i]代码>
$value[0][$i] = "%{$filtervalue}%";
$result = $pdo->prepare($query);
$result->bindValue(':condition', $value[0][$i]);
$result->bindValue(':starts', $start);
$result->bindValue(':pagesize', $pagesize);