LESEN SIE DIE FRAGE SORGFÄLTIG DURCH. Es ist nicht üblich dumm "mein Code funktioniert nicht !!!" Frage.
Wenn ich diesen Code mit beabsichtigter Fehler
ausführe %Vor%Ich bekomme diese Fehlermeldung
Sie haben einen Fehler in Ihrer SQL-Syntax ... nahe 'INN (' I \ 'm', 'd \' Artagnan ')' in Zeile 1
Aber ich dachte schon seit Jahren, dass die Abfrage und die Daten getrennt an den Server gesendet werden und sich niemals gegenseitig stören. So habe ich einige Fragen (obwohl ich bezweifle, dass jemand eine Antwort bekommen hat ...)
Aktualisieren
mysqli
macht es wie erwartet: es wird ein Fehler mit near 'INN(?,?)'
Ich bin mir nicht sicher über alle Details, aber ich werde versuchen zu antworten.
Das Zitat passiert auf der Datenbankseite. Die Datenbank entkernt und bereinigt alle Werte (siehe Punkt 2), die sie empfängt, damit sie korrekt interpretiert werden. In dem Moment, in dem der Fehler ausgelöst wird, gibt die Datenbank (in diesem Fall MySQL) die Abfrage aus, die sie auszuführen versucht hat. Dies wäre nicht so hilfreich, wenn es nur den vorbereiteten Teil zeigt.
Nein, tut es nicht. Zur Vorbereitungszeit wird die Abfrage auf der Serverseite kompiliert. Wenn eine Abfrage mit Werten ausgeführt wird, werden nur die Werte übertragen. Dies entspricht ungefähr dem Aufruf von PREPARE und EXECUTE in der Datenbank.
Dies hängt von der verwendeten Datenbank ab. MySQL kann beispielsweise alle Abfragen in einer Protokolldatei protokollieren (überprüfen Sie dazu meine Einstellungen von my.cnf). Sie können aber auch debugDumpParams () auf PHP-Seite verwenden.
Ich hoffe, das war ein bisschen hilfreich.
Tags und Links php pdo parameterized-query