dbase_open()

Arndtinho

Erfahrenes Mitglied
Hallo,

ich bekomme bei meinem Script eine Warnung, die nach meiner Überlegung nicht erscheinen sollte:

PHP:
$dbname = "test.dbf";
$def = array(
        array("ID",    "C", 3),
        array("Name",  "C", 50),
        array("Vname", "C", 50)
       );

if (!dbase_open($dbname, 2))
      if (!dbase_create($dbname, $def))
           echo "<strong>Error!</strong>";
     else
          echo "DB erstellt";
else
     echo "DB existiert";

Die Warnung sagt folgendes: " Warning: unable to open database test.dbf "

und bezieht sich dabei auf folgende Zeile:

PHP:
if (!dbase_open($dbname, 2))

Ich verstehe nicht, warum die Warnung erscheint, denn wenn die DB nicht vorhanden ist soll das Script sie doch erstellen. (Gut es wird die DB erstellt, aber mit der besagten Warnung.) Warum?

Gruß,
Arndtinho
 
Was für ein Unsinn mit dem @. Dann wird nur das Anzeigen der Warnung unterdrückt, die Datenbank kann aber noch immer nicht geöffnet werden.

Das Verschliessen der Augen vor Fehlern beseitigt die Fehler doch nicht!
 
Ich würde snuu zustimmen.

Denn entweder sie existiert und ich kann sie öffnen, oder
sie existiert nicht und ich erhalte, wenn ich sie nicht unterdrücke,
eine Warnung und lege dann die DB neu an.

Oder wie soll das ganze dann ablaufen?
 
Vielleicht versteh ich das falsch aber die Warnung ist doch richtig genau wie das @!

Du rufst die Funktion dbase_open auf und die Datenbank existiert nicht, was ist daran falsch dass du eine Fehlermeldung bekommst? Ist doch so gedacht!
 
Re:

Da frage ich mich aber was dann dieser Aufruf macht:

PHP:
if (!dbase_open($dbname, 2))

Das ! sagt doch schon aus, wenn keine DB da, dann ....
Also sollte doch die Fehlermeldung nicht erscheinen.

Arndtinho
 
dbase_open öffnet eine Datenbank und gibt im Fehlerfall FALSE zurück. Dennoch wird eine Warung erzeugt, die der PHP-Interpreter laut Konfiguration ausgibt.

snuu
 
Zurück