Heim >Backend-Entwicklung >PHP-Tutorial >Wie verwende ich PDO-vorbereitete Anweisungen korrekt für MySQL-LIKE-Abfragen?

Wie verwende ich PDO-vorbereitete Anweisungen korrekt für MySQL-LIKE-Abfragen?

Susan Sarandon
Susan SarandonOriginal
2024-10-31 02:05:29388Durchsuche

How to Correctly Use PDO Prepared Statements for MySQL LIKE Queries?

PHP PDO Prepared Statement: MySQL LIKE-Abfrage

Beim Durchführen einer LIKE-Abfrage mit der PDO-Klasse von PHP ist es wichtig, den LIKE-Operator korrekt zu verarbeiten und bereiten Sie die Anweisung ordnungsgemäß vor.

Problem: Im bereitgestellten Code funktionierte die ursprüngliche Abfrage mit dem MySQL-Client, bei der Migration zu PHP traten jedoch Probleme auf.

Lösung: Der Fehler liegt in der WHERE-Klausel innerhalb der Prepare-Methode. Die folgenden Zeilen sind falsch:

<code class="php">$ret = $prep->execute(array(':searchTerm' => '"%' . $searchTerm . '"%'));
$ret = $prep->execute(array(':searchTerm' => "%:searchTerm%"));
$ret = $prep->execute(array(':searchTerm' => ':' . $searchTerm . '%'));</code>

Erklärung:

  • Vorbereitete Anweisungen: Sie transportieren Daten getrennt von der Abfrage und machen so Anführungszeichen sind beim Einbetten von Werten nicht erforderlich.
  • LIKE-Operator: Erfordert ein Platzhalterzeichen wie % oder _, um beliebige Zeichenfolgen darzustellen.
  • Korrekte Abfrage: Die korrekte WHERE-Klausel sollte lauten:
<code class="php">WHERE hs.hs_text LIKE :searchTerm</code>

Und die vorbereitete Anweisung sollte wie folgt ausgeführt werden:

<code class="php">$ret = $prep->execute(array(':searchTerm' => '%' . $searchTerm . '%'));</code>

Jetzt sollte die Abfrage die gewünschten Ergebnisse zurückgeben .

Das obige ist der detaillierte Inhalt vonWie verwende ich PDO-vorbereitete Anweisungen korrekt für MySQL-LIKE-Abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn