gpt4 book ai didi

php - PDO bindValue 不允许特定参数通过 (PHP)

转载 作者:行者123 更新时间:2023-12-04 15:02:57 26 4
gpt4 key购买 nike

我正在使用 PHP 和 PDO for PostgreSQL。当我尝试将特定值绑定(bind)到查询中时,出现了奇怪的行为。我有以下内容:

$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]);

$result->bindValue(':condition', '%Bern%');

它适用于该特定条件并显示结果。

我仔细检查以确保 $values[0] 返回 '%Bern%' 并且确实如此。

我什至检查过类型是字符串,确实是。

我什至添加了 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);

关于php - PDO bindValue 不允许特定参数通过 (PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66663543/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com