如何解决致命错误:未捕获错误:无法通过引用 PDO 传递参数 2
我正在 PDO 中尝试使用 LIKE 进行查询,但是我收到以下错误:致命错误:未捕获错误:无法通过引用 PDO 传递参数 2,在这部分代码中。我该如何解决?
function buscador($DB,$categoria_id,$buscado){
$productos = NULL;
$sql = "SELECT * from producto WHERE categoria_id = ? LIKE ?";
$stmt = $DB->prepare($sql);
//$params = [$categoria_id,':keywords','%' . $buscado . '%'];
$stmt->bindParam(1,PDO::PARAM_STR);
$stmt->bindParam(2,'%' . $buscado . '%',PDO::PARAM_STR);
$stmt->execute();
$productos = $stmt->fetchAll();
return $productos;
}
解决方法
bindParam
的第二个参数是通过引用传递的,因此不能是文字,它必须是变量。
您也有我修复的查询语法错误,虽然我不知道要使用的列名,请在尝试使用此代码之前更改它。
function buscador($DB,$categoria_id,$buscado){
$productos = NULL;
$sql = "SELECT * from producto WHERE categoria_id = ? AND othercol LIKE ?";
$stmt = $DB->prepare($sql);
$p2 = '%' . $buscado . '%';
$stmt->bindParam(1,PDO::PARAM_STR);
$stmt->bindParam(2,$p2,PDO::PARAM_STR);
$stmt->execute();
$productos = $stmt->fetchAll();
return $productos;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。