Ich fand, dass, wenn ich MATCH AGAINST in Doctrine mit WHERE verwende, die Parameter nicht ersetzt, die bestanden werden. wenn ich zum Beispiel den folgenden Code $MATCH GEGEN in Lehre
q = Doctrine_Query::create()
->select('*')
->from('TourismUnit tu')
->where('FALSE');
if ($keywords) {
$keywords_array = $this->parse_keywords($keywords);
for ($i = 0; $i < sizeof($keywords_array); $i++)
$q->orWhere("MATCH (name, description) AGAINST ('?*' IN BOOLEAN MODE)", $keywords_array[$i]);
}
keine Ergebnisse finden. Und wenn sie die Zeichenfolge verwenden, scheint die Verkettung zu funktionieren.
$q->orWhere("MATCH (name, description) AGAINST ('".$keywords_array[$i]."*' IN BOOLEAN MODE)");
Ich benutze Doktrin 1.2.2.
Wer weiß, warum nicht die Parameter vor der Ausführung der SQL-Ausdruck ersetzen?
die Verwendung von einfachen Anführungszeichen scheint das Problem zu verursachen - tut dies 'concat (" '",?," * ")' Hilfe? – ajreal
Ja, es funktioniert. Vielen Dank. – Emanuel