我有这条从客户表返回行的sql语句。用户可以选择搜索他们想要输入的内容。我有这个工作,直到我试图通过使用bindValue防止sql注入。现在,除非用户将文本框留空,否则无法返回任何结果。以下是我的代码。仅在空时获取结果
型号
function searchMyCusts($field, $query){
$data = null;
$msg = null;
$status = null;
$sth = $this->db->prepare("SELECT ".CustomerFields::ID.",".CustomerFields::FirstName.",".CustomerFields::LastName.",".CustomerFields::PhoneNumber." FROM ".CustomerFields::TableName." WHERE '$field' LIKE :query");
$sth->bindValue(':query', $query);
if ($sth->execute()){
$status = "success";
$msg = "Customer entry successfully altered";
$data = $this->smartFetchAll($sth);
}else{
$status = "error";
$msg = "An error occurred. :".$sth->errorInfo()[2];
}
$jsonData = json_encode($this->buildResponseArray($status, $msg, $data));
return $jsonData;
}
。在我在传递的价值到底准备行。就像我说这是工作,直到我试图bindValue查询变量。
我将不胜感激您的任何见解。提前致谢!
问候
请添加对您所使用的语言(PHP等) – 2013-05-11 20:34:59
你能不能再发表'回声$ query'相应的标记你准备好了吗? – peterm 2013-05-11 21:05:16