Ich hoffe ihr könnt mir weiter helfen. Ich nutze mysql_real_escape_string() und dabei wird mir immer ein Fehler angezeigt:
Warning: mysql\_real\_escape\_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\xampp\htdocs\violators\sites\daten\daten\_charakterdaten.php on line 12
Ja, das hatte ich auch gelesen, aber ich dachte, es reicht, wenn die Verbindung steht?!
Was kann ich machen, da ich ja gar kein mysql_connect() nutze, sondern mit PDO arbeite?
Danke!
Es funktioniert, wenn ich mysql_connect zu meiner connect.php hinzufüge, aber dann ist die Verbindung zur DB immer aktiv, oder? Ist das nicht etwas unsicher?
warum willst du die strings überhaupt noch escapen?
dadurch das du die PDO Schnittstelle benutzt ist für die SQL Abfragen eigentlich keine escape function von nöten.
Ach so. Ich dachte, dass man das wegen der Sicherheit noch machen müsste, damit bei Usereingaben keine SQL-Injektionen stattfinden können.
Also reicht es, wenn ich die Abfragen mit PDO mache?!
Die Parameter für Prepared Statements müssen nicht maskiert werden. Der Treiber übernimmt das für Sie. Wenn Ihre Anwendung ausschließlich Prepared Statements benutzt, können Sie sicher sein, dass keine SQL-Injection auftreten wird. (Wenn Sie aber trotzdem andere Teile der Abfrage aus nicht zuverlässigen Eingaben generieren, sind Sie immer noch gefährdet.)
Gruß
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]