Это не сработает. Если вы хотите заменить заполнитель, вам нужно передать два параметра в where()
, например ::
->where('pd_phone = ?', $patient_search_name);
В противном случае передаваемая вами единственная строка будет использоваться для предложения where как есть, поэтому вам потребуется выполнить что-то вроде:
$search = "pd_phone = " . $patient_search_name;
То есть, построить весь оператор where как одну строку. В качестве альтернативы используйте объект select
в операторе switch, например ::
.
case 'exact_match': $select->where('pd_name = ?', $patient_search_name);
break;
Или просто иметь две переменные в каждой case
, например ::
$placeholder = "pd_phone = ?";
$value = '%' . $patient_search_name . '%';
break;
...
->where($placeholder, $value);