当我尝试 bind 时$string
,它要么不返回任何结果,要么返回我表中的所有结果。
如果我使用$string= '%' . $string . '%'
or$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%'
它应该可以正常工作。有没有人知道这里发生了什么?
当带有 LIKE 子句的查询在搜索字符串周围使用通配符返回所有行时,这意味着搜索字符串为空。尽管您可能对其内容有任何看法。这是一个确凿的事实,也是这个问题的实际答案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句