gpt4 book ai didi

php - Sphinx PDO 多个变量在执行错误

转载 作者:行者123 更新时间:2023-11-28 23:34:32 25 4
gpt4 key购买 nike

Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens

当我尝试使用多个变量执行以下 PDO 查询时,出现上述错误。

$array = $sphinx->prepare("select * from `indexname` where MATCH ('@name (:search)') AND
`price` BETWEEN :min AND :max");
$array->execute(array(':search' => $search, ':min' => $min, ':max' => $max));

如果我只使用 :search 并将 :min 和 :max 更改为 $min 和 $max,查询就可以工作。

$array = $sphinx->prepare("select * from `indexname` where MATCH ('@name (:search)') AND `price` BETWEEN $min AND $max");
$array->execute(array(':search' => $search));

我可以在 sphinx 的执行中只使用 1 个变量吗?

最佳答案

使用占位符,您可以绑定(bind) a complete data literal only

因此您必须先在 PHP 中编译您的搜索模式,然后将其发送到查询:

$stmt = $sphinx->prepare("select * from `indexname` where MATCH (:search) AND
`price` BETWEEN :min AND :max");
$stmt->bindValue(':search', "@name ($search)");
$stmt->bindValue(':min', (int)$min, PDO::PARAM_INT);
$stmt->bindValue(':max', (int)$max, PDO::PARAM_INT);
$stmt->execute();

关于php - Sphinx PDO 多个变量在执行错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36182593/

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