Nachfrage MySQL <=> PHP

Hi,

ich hab mal eine Nachfrage da in den letzten Tagen auf server6 Probleme irgendwie zwischen mysql und php gab würde ich gerne nachfragen wie ich die Fehler vermeiden kann…

Seite 1:

mysql_connect("localhost", "bsp_DB1", "r4535T"); mysql_select_db("bsp_DB1");

Fehler

[07-Oct-2011 15:32:08] PHP Warning: mysql_connect() [<a href='http://de.php.net/function.mysql-connect'>function.mysql-connect</a>]: Service temporarily unavailable, please retry in a few minutes. in /users/bsp/www/inc/header.inc.php on line 7 [07-Oct-2011 15:32:08] PHP Warning: mysql_select_db() [<a href='http://de.php.net/function.mysql-select-db'>function.mysql-select-db</a>]: Service temporarily unavailable, please retry in a few minutes. in /users/bsp/www/inc/header.inc.php on line 8 [07-Oct-2011 15:32:08] PHP Warning: mysql_select_db() [<a href='http://de.php.net/function.mysql-select-db'>function.mysql-select-db</a>]: A link to the server could not be established in /users/bsp/www/inc/header.inc.php on line 8 [07-Oct-2011 15:32:08] PHP Warning: mysql_real_escape_string() [<a href='http://de.php.net/function.mysql-real-escape-string'>function.mysql-real-escape-string</a>]: Service temporarily unavailable, please retry in a few minutes. in /users/bsp/www/inc/header.inc.php on line 18 [07-Oct-2011 15:32:08] PHP Warning: mysql_real_escape_string() [<a href='http://de.php.net/function.mysql-real-escape-string'>function.mysql-real-escape-string</a>]: A link to the server could not be established in /users/bsp/www/inc/header.inc.php on line 18 [07-Oct-2011 15:32:08] PHP Warning: mysql_query() [<a href='http://de.php.net/function.mysql-query'>function.mysql-query</a>]: Service temporarily unavailable, please retry in a few minutes. in /users/bsp/www/inc/header.inc.php on line 19 [07-Oct-2011 15:32:08] PHP Warning: mysql_query() [<a href='http://de.php.net/function.mysql-query'>function.mysql-query</a>]: A link to the server could not be established in /users/bsp/www/inc/header.inc.php on line 19 [07-Oct-2011 15:32:08] PHP Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /users/bsp/www/inc/header.inc.php on line 20

Könnte ich die oben geposteten Fehlermeldungen durch abänderung des codes in folgendes unterdrucken oder bringt das nix (da der mysql server falsch antwortet o.ä.). Bin mir da etwas unsicher da ich sowas ja nicht simulieren kann.

mysql_connect("localhost", "bsp_DB1", "r4535T") or die("Fehler"); mysql_select_db("bsp_DB1") or die("Fehler");

lg danke
flo

Du musst zusätzlich die Fehlermeldung für einen einzelnen Befehl per vorangestelltem @ oder global per error_reporting bzw. ini_set und display_errors deaktivieren.
Fehlermeldungen kannst du einfach mit einem falschen Passwort erzwingen. Alle folgenden SQL-Befehle werfen wegen fehlender Verbindung ebenfalls Fehler.

Hi,

danke … dann wird das glaub ich mal klappen mit dem or die(); die fehlermeldung ist ja eigentlich schon unterdrückt … ich lasse sie mir extra in eine datei schreiben:

ini_set('display_errors', 'Off'); ini_set('log_errors', 'On'); ini_set('error_log', '/users/bsp/www/inc/error.log.php');

lg flo


Wieso wirft'n der sowas? mysql_real_escape_string macht doch nicht der mysql-server, oder? Oder doch?

Wieso wirft’n der sowas? mysql_real_escape_string macht doch nicht der mysql-server, oder? Oder doch?

mysql_real_escape_string benötigt eine bestehende DB-Verbindung, um die Zeichenkodierung zu wissen und davon abhängig die Daten behandeln zu können.

Ergänzung:
Und die bestehende Zeichenkodierung zu wissen ist wichtig, damit solche Injections nicht ausgenutzt werden können, wenn man Funktionen nutzt, die die Zeichenkodierung nicht berücksichtigen:
http://shiflett.org/blog/2006/jan/addslashes-versus-mysql-real-escape-string

Oh, wow, gut zu wissen. Firma dankt