PDO准备语句搜索错误

时间:2014-03-11 14:57:20

标签: php mysql pdo

您好,有人可以解释为什么这个查询不起作用?

这可能是愚蠢的事,但我不能为我的生活而努力! 我想要它所以所有搜索都是小写的

// $_UID would be 1

// $_GET['term'] would be 'title'

$_UID = $USER->getCID ();

$sql = $DB->prepare("SELECT * FROM jobs WHERE CID = :cid AND Status='1' AND LOWER(`SiteName`) LIKE LOWER(:term) ORDER BY ID DESC"); 
$sql->bindParam(':cid', $_UID, PDO::PARAM_INT); 
$sql->bindParam(':term', '%' . $_GET['term'] . '%', PDO::PARAM_STR);    //--line27
$sql->execute();
  

错误:   致命错误:无法在第27行的C:\ xampp \ htdocs \ eBusiness \ V3 \ Ajax \ job_search.php中通过引用传递参数2

1 个答案:

答案 0 :(得分:0)

bindParam希望第二个参数成为参考。这意味着它需要是传递的变量,而不是表达式。

$_UID = $USER->getCID();
$term = '%'.$_GET['term'].'%';

$sql = $DB->prepare("SELECT * FROM jobs WHERE CID = :cid AND Status='1' AND LOWER(`SiteName`) LIKE LOWER(:term) ORDER BY ID DESC"); 
$sql->bindParam(':cid', $_UID, PDO::PARAM_INT); 
$sql->bindParam(':term', $term, PDO::PARAM_STR);
$sql->execute();