Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PHP mysql_real_escape_string():Zugriff verweigert für Benutzer 'www-data'@'localhost'

Sie verwenden entweder PDO oder Sie verwenden die mysql-Erweiterung, verwenden Sie nicht beide gleichzeitig. mysql_real_escape_string ist eine Funktion der mysql-Erweiterung. Es benötigt eine Verbindung zur Datenbank, um zu funktionieren. Wenn es aufgerufen wird, versucht es, eine Verbindung herzustellen, wenn Sie vorher keine mit mysql_connect hergestellt haben , und geben Sie die erforderlichen Anmeldeinformationen ein. Auf Ihrem lokalen Rechner haben Sie anscheinend keinen Passwortschutz und der Kontoname für den MySQL-Benutzer ist derselbe wie der Name, unter dem der Webserver läuft, also funktioniert es glücklicherweise. Auf dem Produktionssystem sind die Anmeldeinformationen anders und es kann keine Verbindung hergestellt werden.

Hören Sie auf, mysql_real_escape_string zu verwenden mit PDO. Verwenden Sie entweder die String-Quoting-Funktionen von PDO oder, besser, verwenden Sie vorbereitete und parametrisierte Abfragen und bind Ihre Werte .