Tôi đang chuyển đổi tất cả mã trang web của mình từ việc sử dụng hàm mysql_ * sang PDO. Tài liệu PHP về PDO không rõ ràng cho nhu cầu của tôi. Nó cung cấp cho bạn các chức năng để sử dụng, nhưng không đi vào chi tiết để giải thích chúng trong các kịch bản khác nhau.Tìm kiếm PDO và MySQL Toàn văn
Về cơ bản, tôi có một tìm kiếm toàn văn mysql:
$sql = "SELECT ... FROM search_table WHERE MATCH(some_field) AGAINST ('{$searchFor}*' IN BOOLEAN MODE)";
Báo cáo thực tế lâu hơn nữa, nhưng đây là những gì nó về cơ bản không.
Câu hỏi của tôi là, tôi sẽ kết hợp điều này vào PDO như thế nào?
Tôi biết bạn không có ý định sử dụng dấu ngoặc kép quanh dấu vị trí, vì vậy bạn có để chúng trong hàm AGAINST() không? Tôi có bao gồm chúng không? Nếu tôi bỏ chúng ra, điều gì sẽ xảy ra với biểu tượng ký tự đại diện, v.v ...?
$sql = $this->db->prepare("SELECT ... FROM search_table WHERE MATCH(some_field) AGAINST(:searchText IN BOOLEAN MODE");
$sql->bindValue(':searchText', $searchFor . '*');
Cảm ơn bạn rất nhiều vì câu trả lời của bạn, và giải pháp thay thế :) –
tôi không thể tái sản xuất này "lạ" hành vi bạn đang nói về. 'AGAINST (? IN BOOLEAN MODE)' hoạt động tốt cho tôi. Bạn đang sử dụng phiên bản Mysql nào? –
Tất nhiên chế độ mô phỏng được tắt và kiểm tra lại. –