urlencode()
hat nichts zu tun mit SQL, also verhindert es die SQL-Injektion genauso wie Kerosin, um Ihre Burger leckerer zu machen. Außerdem wird alles, was in Ihre Datenbank gelangt, URL-kodiert, die Sie dann entschlüsseln müssen, wenn Sie nach dem Abrufen der Datenbank irgendetwas Nützliches damit anfangen möchten.
Das Maskieren Ihrer Abfragen hingegen hilft Ihrer Anwendung, sich vor SQL-Injection zu schützen, und nicht mehr. Es ändert die Daten nicht Sie geben Ihre Abfragen ein; es schützt nur Ihre Abfragen vor Manipulationen. Das ist die Idee der SQL-Injection, und das ist auch der Grund, warum die URL-Codierung Ihrer Daten nichts dagegen tut. Zugegeben, das tut es drehen Sie Ihre Apostrophe '
in %27
, wodurch sie unschädlich gemacht werden, aber wie im obigen Absatz erwähnt, müssen Sie sie wieder in Apostrophe zurückdecodieren, um sie verwenden zu können.
Verwenden Sie das richtige Werkzeug für den richtigen Zweck. Insbesondere im Jahr 2011 sollten Sie vorbereitete Anweisungen verwenden, anstatt Ihre Abfragevariablen manuell zu maskieren und Zeichenfolgen zu verketten, um Abfragen zu bilden.