[PHP] mysql_real_escape_string problem/denkfehler

strolch00

redraft.de
ID: 155297
L
21 April 2006
1.684
72
Hi @all,

so ich habe mal nach ner längeren Pause wieder angefangen was zu programmieren, aber irgendwie stehe ich grad auf dem Schlauch. Mein Problem ist folgendes:
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in D:\xampp\htdocs\conflib\SessionInstanz.php on line 91

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in D:\xampp\htdocs\conflib\SessionInstanz.php on line 91

Die Zeile 91 ist einfach nur:
PHP:
            $_item = "'".mysql_real_escape_string($_item)."'";

Was soll mir das denn jetzt genau sagen, mysql_real_escape_string braucht doch keine MySQL verbindung oder liege ich da falsch? Kann es daran liegen das ich jetzt mit xampp entwickle?

Danke schonmal.

*edit
Ok nach einem Blick ins Manual hat sich das geklärt mit der Verbindung, so wie ich es nun verstanden habe wird eine Verbindung benötigt, aber ich kann bzw. will nicht deswegen eine Verbindung aufbauen. Wie kann ich das umgehen? Muss ich mir nun eine eigene Funktion schreiben die, die Zeichen maskiert, welche normal von mysql_real_escape_string maskiert worden wären?
 
Zuletzt bearbeitet:
Ok nach einem Blick ins Manual hat sich das geklärt mit der Verbindung, so wie ich es nun erstanden habe wird eine Verbindung benötigt, aber ich kann bzw. will nicht deswegen eine Verbindung aufbauen. Wie kann ich das umgehen? Muss ich mir nun eine eigene Funktion schreiben die, die Zeichen maskiert, welche normal von mysql_real_escape_string maskiert worden wären?
Steht doch dran: Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.
Es ist also nur eine Warnung und dehalb auch nicht so tragisch, mach ein @ vor den Funktionsaufruf. Die Funktion liefert doch den richtigen Rückgabewert, oder?
 
Nein das ist mein Problem die Funktion liefert gar nix zurück der Wert den ich dann in der Session speichern will ist anstatt dem escapten String ein leerer String.

Fals es nochwas hilft das ist die Funktion um die es geht(habsch auf die schnelle mal zusammen geschrieben):
PHP:
   function _secureValue($_item)
   {
      if(empty($_item))
      {
         $_item = 'NULL';
         return $_item;
      }

      if(get_magic_quotes_gpc() == 1)
         $_item = stripslashes($_item);

      if(ctype_digit($_item))
      {
         return (int)$_item;
      }
      else
      {
         return "'".@mysql_real_escape_string($_item)."'";
      }
   }
 
So weit ich weiß, wird eine Verbindung benötigt, damit der Zeichensatz bekannt ist und somit klar ist, welche Zeichen wie kodiert werden müssen.