Djangos LIKE-Operation.
<p>Ich versuche, eine Abfrage über Djangos Python zu senden, und ich versuche auch, SQL-Injection-Angriffe zu verhindern. <br /><br />Kann jemand erklären, wie die Nachrichten funktionieren? Zum Beispiel ein Beispiel für eine LIKE-Abfrage. </p><p><br /></p>
<pre class="brush:php;toolbar:false;">"SELECT * FROM admin WHERE name LIKE '%myTitle%'</pre>
<p>Abfragen wie diese lassen sich ganz einfach konfigurieren. </p>
<p><code>cursor.execute("SELECT * FROM admin WHERE name= %s", (_id, ))</code>;</p>
<p>Aber es ist leicht, Fehler zu machen, indem man zum Beispiel beim Einfügen von %s das %% im Text streicht. </p>
<pre class="brush:php;toolbar:false;">SELECT * FROM admin WHERE name LIKE %s</pre>
<p>Wenn die Abfrage abgeschlossen ist, sieht sie so aus. </p>
<pre class="brush:php;toolbar:false;">SELECT * FROM admin WHERE name 'MyTitle'</pre>
<p>Es wird korrekt implementiert, aber ich möchte, dass %% zwischen %s und LIKE gesetzt wird. </p>
<pre class="brush:php;toolbar:false;">SELECT * FROM admin WHERE name '%MyTitle%'</pre>
<p>Kann jemand erklären, wie man dieses Problem löst? <br /><br />Mein einfaches Skript sieht wie folgt aus:</p><p><br /></p>
<pre class="brush:php;toolbar:false;">aus django.db-Importverbindung
title = „meinTitel“
query = „SELECT * FROM admin WHERE name LIKE %s“
mit Connection.cursor() als Cursor:
Cursor.execute(query, (title,))</pre>
<p><br /></p>