顧客テーブルから行を返すこの 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 しようとするまで、これは機能していました。
ご意見をいただければ幸いです。前もって感謝します!
よろしく