मैं अपने सभी साइट कोड को mysql_ * कार्यों को पीडीओ में उपयोग करने से बदल रहा हूं। पीडीओ पर PHP दस्तावेज मेरी आवश्यकताओं के लिए स्पष्ट नहीं है। यह आपको उपयोग करने के लिए कार्य देता है, लेकिन विभिन्न परिदृश्यों में उन्हें समझाने के लिए विस्तार से नहीं जाता है।पीडीओ और माईएसक्यूएल फुलटेक्स्ट खोज
मूल रूप से, मैं एक mysql की प्रतिलिपि प्राप्त खोज की है:
$sql = "SELECT ... FROM search_table WHERE MATCH(some_field) AGAINST ('{$searchFor}*' IN BOOLEAN MODE)";
वास्तविक बयान बहुत लंबे समय तक है, लेकिन इस यह मूल रूप से क्या करता है।
मेरा सवाल है, मैं पीडीओ में इसे कैसे शामिल करूं?
मुझे पता है कि आप जगह-मार्कर के चारों ओर उद्धरणों का उपयोग करने के लिए नहीं हैं, तो क्या आप उन्हें AGAINST() फ़ंक्शन में छोड़ देते हैं? क्या मैं उन्हें शामिल करता हूं? अगर मैं उन्हें छोड़ देता हूं, वाइल्डकार्ड प्रतीक आदि के साथ क्या होता है?
$sql = $this->db->prepare("SELECT ... FROM search_table WHERE MATCH(some_field) AGAINST(:searchText IN BOOLEAN MODE");
$sql->bindValue(':searchText', $searchFor . '*');
आप अपने जवाब के लिए बहुत बहुत धन्यवाद, और वैकल्पिक समाधान :) –
मैं इस "अजीब" व्यवहार की बात कर रहे पुन: पेश नहीं कर सकते। 'के खिलाफ (? बुलेन मोड में)' मेरे लिए बिल्कुल सही काम करता है। आप किस MySQL संस्करण का उपयोग कर रहे हैं? –
बेशक इम्यूलेशन मोड बंद है और दोबारा चेक किया गया है। –