$ret = $prep->execute(array(':searchTerm' => '"%'.$searchTerm.'%"'));
Cái này sai. Bạn không cần dấu ngoặc kép.
WHERE hs.hs_text LIKE ":searchTerm"
$ret = $prep->execute(array(':searchTerm' => '%'.$searchTerm.'%'));
Điều này cũng sai. Hãy thử với:
$prep = $dbh->prepare($sql);
$ret = $prep->execute(array(':searchTerm' => '%'.$searchTerm.'%'));
Giải thích:Các câu lệnh chuẩn bị không chỉ đơn giản thực hiện một chuỗi thay thế. Chúng vận chuyển dữ liệu hoàn toàn tách biệt với truy vấn. Dấu ngoặc kép chỉ cần thiết khi nhúng các giá trị vào một truy vấn.