当我尝试绑定$string
时,它要么不返回任何结果,要么不返回我表中的所有结果。
如果我使用$string= '%' . $string . '%'
或$string= "%" . $string . "%"
它返回所有行。
,当我尝试不做任何修改直接绑定$string
时,它根本不会返回任何结果。
我尝试使用不同的格式化技术,例如修剪和字符串替换功能,但到目前为止,对我来说没有任何作用。我正在使用PHP / 5.6.20。
function searchPatient($string){
$string= '%' . $string . '%';
$stmt = $this->con->prepare("SELECT id, fname, lname, mname, sex, title, DOB FROM patient_data WHERE fname LIKE ?");
$stmt->bind_param("s",$string);
$stmt->execute();
$stmt->bind_result($id, $fname, $lname, $mname, $sex, $title, $DOB);
$pat_record = array();
while($stmt->fetch()){
$patient = array();
$patient['id'] = $id;
$patient['fname'] = $fname;
$patient['lname'] = $lname;
$patient['mname'] = $mname;
$patient['sex'] = $sex;
$patient['title'] = $title;
$patient['DOB'] = $DOB;
array_push($pat_record, $patient);
}
return $pat_record;
}
当我用?
或'John'
之类的实际搜索字词替换'%John%'
时,它应能正常工作。有人知道这里发生了什么吗?
答案 0 :(得分:0)
当使用LIKE子句的查询在搜索字符串周围使用通配符返回所有行时,表示搜索字符串为空。尽管有任何想法,您可能会对它的内容有所了解。这是确凿的事实,也是对这个问题的实际答案。