unable to open database (dbase_open)
klon
- php
0 Tom0 Michael Nagler
Hallo,
Ich versuche gerade mit folgendem PHP Programm Datensätze aus eine .dbf-Datenbank-Filfe zu löschen, aber leider folgt beim klicken auf DEL die Fehlermeldung:
Warning: unable to open database 80510715_bitz.dbf in /.../html/test2.php on line 6
Can't open 80510715_bitz.dbf
------------
<?php
$table = "80510715_bitz.dbf";
if ($del != "")
{
if (!$FileHandler = dbase_open($table,2))
{
echo "Can't open $table\n";
exit;
}
else
{
dbase_delete_record($FileHandler,$del);
dbase_pack($FileHandler);
dbase_close($FileHandler);
}
}
if (!$FileHandler = dbase_open($table,0))
{
echo "Can't open $table\n";
exit;
}
else
{
print "<TABLE border="1">";
for ($i=1; $i <= dbase_numrecords($FileHandler); $i++)
{
$row = dbase_get_record($FileHandler,$i);
print "<TR><TD><a href="test2.php?del=$i">DEL</a>";
for ($j=0; $j <= dbase_numfields($FileHandler); $j++)
{
print "<TD>".$row[$j]."</TD>";
}
print "</TR>";
}
print "</TABLE>";
dbase_close($FileHandler);
}
?>
-----------
klon
Hello,
Warning: unable to open database 80510715_bitz.dbf in /.../html/test2.php on line 6
Can't open 80510715_bitz.dbf
if (!$FileHandler = dbase_open($table,2))
Ich rate mal, dass das die Zeile 6 ist.
Bestehen denn Schreibrechte auf die Datei und x-Rechte auf das Verzeichnis, in dem sie liegt?
Das sieht mir so aus, als hätte der PHP-Prozess keine Schreib- oder Leserechte auf die _vorhandene_ Datei. Wenn er keine Rechte hätte, bekäme man 'access dienied'.
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
Das wars genau!
Aber leider habe ich nun ein anderes Problem:
Warum gehen die Formatierungen der Felder (des Headers) verloren wenn ich Datensätze Lösche?
Klon
Hello,
Aber leider habe ich nun ein anderes Problem:
Warum gehen die Formatierungen der Felder (des Headers) verloren wenn ich Datensätze Lösche?
Den Satz verstehe ich nicht.
Welches Headers?
Meinst du den dBase-Datei-Header?
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
Hallo Klon,
probier mal folgendes:
$table = "80510715_bitz.dbf";
if( !empty( $del ))
{
$FileHandler = dbase_open($table,2) or die "Can't open $table";
dbase_delete_record($FileHandler,$del);
dbase_pack($FileHandler);
dbase_close($FileHandler);
}
Viele Grüße,
Michael