我正在尝试使用bindParam
创建一个LIKE。当我尝试执行它会引发异常。
我怎么能这样做?
public function getLocalByNome($nomeLocal){
$stm = $this->conexao->prepare("SELECT * FROM locais WHERE nome LIKE ?");
$stm->bindParam(1, "%".$nomeLocal."%", PDO::PARAM_STR);
$stm->execute();
$lista = $stm->fetchAll();
return $lista;
}
例外:
致命错误:无法在第94行的/opt/lampp/htdocs/TelefonesUteis/dao/LocalDAO.php中通过引用传递参数2
答案 0 :(得分:1)
你可以做两件事之一。
$tempString = "%".$nomeLocal."%";
$stm->bindParam(1, $tempString, PDO::PARAM_STR);
或
$stm->bindParam(1, $tempString = "%".$nomeLocal."%", PDO::PARAM_STR);
抛出此错误是因为您正在绑定变量,如您所说
$stm->bindParam(1, $tempString, PDO::PARAM_STR);
$tempString = 'something else';
当你执行语句时,它将使用something else
,即使你在将它绑定到pdo语句之后设置它。