Kalle: Finde meine lokale Datenbank nicht

Hallöle,

nach der Installation von FoxServ habe ich unter WIN NT 4.0 mit WinMySQLadmin eine leere Datenbank angelegt:
E:/FoxServ/mysql/data/aktivferien

In der httpd.conf lautet ein Eintrag:
Alias /dbkalle "E:/FoxServ/mysql/data/aktivferien"
<Directory "E:/FoxServ/mysql/data/aktivferien">
    Options Indexes FollowSymLinks MultiViews ExecCGI
    AddOutputFilter Includes html
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

Der folgende Zugriff per index.php klappt nicht:
  $host     = "localhost";
  $id       = "sagichnich";
  $pw       = "strenggeheim";
  $database = "dbkalle";

if ( $conn_id = @mysql_connect($host,$id,$pw) ) {
    echo "mit ".$host." unter ".$conn_id." verbunden<br>";
  } else {
    echo "<b>Verbindung zu ".$host." fehlgeschlagen</b><br>";
  }

if ( @mysql_select_db($database,$conn_id) ) {    //  Returns TRUE on success or FALSE on failure.
    echo "mit Datenbank ".$database." verbunden<br>";
  } else {
    echo "<b>Verbindung zu Datenbank ".$database." fehlgeschlagen</b><br>";
  }

Protokoll-Anzeige:
mit localhost unter Resource id #1 verbunden
Verbindung zu Datenbank dbkalle fehlgeschlagen

Wo liegt der Fehler?

Grüße aus Worms, Kalle.

  1. Hallo!

    Versuche mal folgendes!

    $host     = "localhost";
      $id       = "sagichnich";
      $pw       = "strenggeheim";
      $database = "dbkalle";

    $conn_id = mysql_connect($host,$id,$pw);
    echo mysql_error($conn_id);
    mysql_select_db($database,$conn_id);
    echo mysql_error($conn_id);

    Gerade wenn es Fehler gibt oder was nicht läuft wie es laufen soll, ist es sinnvoll das "@" vor der Funktion zu entfernen.

    MfG, André Laugks

    --
    L-Andre @ gmx.de
    1. Hallo!

      Versuche mal folgendes!

      $conn_id = mysql_connect($host,$id,$pw);
      echo mysql_error($conn_id);
      mysql_select_db($database,$conn_id);
      echo mysql_error($conn_id);

      Wie erwartet:
      Unknown database 'dbkalle'

      Wie das Thema schon sagt, PHP findet die Datenbank nicht.

      Frage: Wie heißt meine Datenbank aus der Sicht von PHP ?

      Gruß, Kalle.

  2. Hallo!

    nach der Installation von FoxServ habe ich unter WIN NT 4.0 mit WinMySQLadmin eine leere Datenbank angelegt:

    Ich würde phpmyadmin verwenden, denn das ist aiuch PHP. Vielleicht liegt es daran das den geheimer Username der Datenbank($id) keine Rechte Hat die Datenbank zu verwenden, wobei ich glaueb dann hättest Du eien andere Fehlermeldung(mysql_error(), das was Dein Script ausgibt muß nicht stimmen!)

    E:/FoxServ/mysql/data/aktivferien

    Seit wann legt man Datenbanken in Verzeichnissen an? Wofür ist das wichtig? Darum kümmert sich der Datenbank-Server, damit hast Du nichts zu tun.

    In der httpd.conf lautet ein Eintrag:

    Was hat das ganez mit der Apache-Konfiguration zu tun? Der zugriff auf die Datenbank erfolgt mit PHP(PHP stellt eine TCP/IP oder Unix-Socket-Verbindnung her), nicht über HTTP.

    Alias /dbkalle "E:/FoxServ/mysql/data/aktivferien"
    <Directory "E:/FoxServ/mysql/data/aktivferien">
        Options Indexes FollowSymLinks MultiViews ExecCGI
        AddOutputFilter Includes html
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>

    Das kannst Du getrost löschen!

    Der folgende Zugriff per index.php klappt nicht:
      $host     = "localhost";
      $id       = "sagichnich";
      $pw       = "strenggeheim";
      $database = "dbkalle";

    Wie heißt die Datenbank denn jetzt? "dbkalle" oder "aktivferien"?

    if ( $conn_id = @mysql_connect($host,$id,$pw) ) {

    während des entwickelns @ wegnehmen, wie schon gesagt wurde.

    echo "mit ".$host." unter ".$conn_id." verbunden<br>";
      } else {
        echo "<b>Verbindung zu ".$host." fehlgeschlagen</b><br>";
      }

    if ( @mysql_select_db($database,$conn_id) ) {    //  Returns TRUE on success or FALSE on failure.

    hier gilt dasselbe!

    echo "mit Datenbank ".$database." verbunden<br>";
      } else {
        echo "<b>Verbindung zu Datenbank ".$database." fehlgeschlagen</b><br>";
      }

    Protokoll-Anzeige:
    mit localhost unter Resource id #1 verbunden
    Verbindung zu Datenbank dbkalle fehlgeschlagen

    Also wie es aussieht funktioniert die Verbindung zum Server, also sind die 3 Daten $host, $id, $pw korrekt. Es wird am Datenbanknamen liegen. Gibt es die Datenbank "dbkalle"? Oder ist das vielleicht der Name einer Tabelle in der Datenbank? Dahin  muß der Name der Datenbank, zu der der User ($id) zugriffsrechte hat, das mußt Du noch sicherstellen.

    Grüße
    Andreas