Je convertis tout le code de mes sites en utilisant les fonctions mysql_ * pour PDO. La documentation PHP sur PDO n'est pas claire pour mes besoins. Il vous donne les fonctions à utiliser, mais ne va pas dans les détails pour les expliquer dans différents scénarios.PDO et MySQL Recherche plein texte
Fondamentalement, j'ai une recherche mysql du texte intégral:
$sql = "SELECT ... FROM search_table WHERE MATCH(some_field) AGAINST ('{$searchFor}*' IN BOOLEAN MODE)";
Les déclarations réelles beaucoup plus, mais c'est ce qu'il fait essentiellement.
Ma question est, comment pourrais-je l'intégrer dans PDO?
Je sais que vous n'êtes pas censé utiliser des guillemets autour du marqueur de lieu, alors laissez-les dans la fonction AGAINST()? Est-ce que je les inclut? Si je les laisse, qu'arrive-t-il au symbole générique, etc.?
$sql = $this->db->prepare("SELECT ... FROM search_table WHERE MATCH(some_field) AGAINST(:searchText IN BOOLEAN MODE");
$sql->bindValue(':searchText', $searchFor . '*');
Merci beaucoup pour votre réponse et solution de rechange :) –
je ne peux pas reproduire ce comportement « bizarre » vous parlez. 'CONTRE (? EN MODE BOOLEAN)' fonctionne bien pour moi. Quelle version de Mysql utilisez-vous? –
Bien sûr, le mode d'émulation est désactivé et revérifié. –