PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   Variable nein, Klartext ja... (http://www.selfphp.de/forum/showthread.php?t=7703)

rSh 13.05.2004 09:29:49

Variable nein, Klartext ja...
 
Hallo,

ich habe ein Problem mit meiner geschriebenen Funktion "database()"



PHP-Code:

<?

$vars = array(
              "sql" => array(
                             "server"   => "localhost",
                             "username" => "root",
                             "password" => "",
                             "database" => "bla"
                            )
             );



function database()
{
  $link_a = @mysql_connect(
                           $vars[sql][server],
                           $vars[sql][username],
                           $vars[sql][password]
                          );
  $link_b = @mysql_select_db(
                             $vars[sql][database]
                            );

  if($link_a)
  {
    // MySQL-Server erreichbar

    if($link_b)
    {
      // MySQL-Datenbank erreichbar
    }
    else
    {
      print "Fehler: <b>".mysql_error()."</b>";
      print "<br>";
    }
  }
  else
  {
    print "Fehler: <b>".mysql_error()."</b>";
  }

}


print "database() wird aufgerufen...<br><br>";
database();
?>


Das Problem liegt im Grunde nicht in der Funktion, die klappt 100 pro, es liegt daran das wenn ich bei mysql_select_db die Variable $vars[sql][database] für die Datenbank angebe, gibt er mir aus das die Datenbank angeblich nicht ausgewählt werden konnte, schreibe ich den Datenbanknamen allerdings als Klartext "bla" dann funktioniert es. Ich hab die Variable auch schon mal so ausgeben lassen und sie gibt selbstverständlich bla aus so wie sie es sollte.

Das ist nen merkwürdiges verzwicktes Problem!


Wäre nett wenn mir einer helfen könnte, danke

Fuchs 13.05.2004 17:48:54

Wenn du error_reporting(E_ALL) haettest wuerde dir PHP mitteilen das es diese Variable nicht gibt. (zumindest nicht in diesem Scope)

Stefan_M 17.05.2004 12:49:25

Problem vom Apache
 
Hi rush,

ich hatte genau das selbe problem. Du musst zwischen 50 und 100 mal auf aktuallisieren klicken, klingt verrückt ich weiß. Das ist ein problem von Apache was in den nächsten Versionen irgendwann behoben werden soll. Wenn du so oft geklickt hast geht da irgendwas im Apache aus und das klappt dann für immer. Umständlich aber anders geht es nicht halt.

Gruß Stefan

chris17 17.05.2004 13:08:23

Hallo zusammen,

das hat eher was mit dem "Gültigkeitsbereich/Sichtbarkeit" der Variable $vars zu tun. Die Funktion weiss nix von der Variable $vars.
Fuchs hat's ja schon zart angedeutet.
PHP-Code:

error_reporting(E_ALL);

$vars = array("sql" => array(
                             
"server"   => "localhost",
                             
"username" => "root",
                             
"password" => "",
                             
"database" => "bla"
                            
)
             );


function 
database() {
    
// Nächste Zeile auskommentieren, und es funktioniert.
    #global $vars;    
    
echo 'TEST: '.$vars['sql']['server'];
}
database();
// -> Notice: Undefined variable: vars in ..... 

Grüsse

Christian


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:21:58 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.