2010-11-19 14 views
3

Ich habe eine Website mit 1and1 gehostet - wer nutzlos sind! Aus irgendeinem Grund funktionieren die von ihnen bereitgestellten Backup-Skripte nicht mehr und sie können mir keine Antwort geben! Also dachte ich, ich würde meine eigenen schreiben, das ist mein Code:Warnung: fread() [function.fread]: Länge Parameter muss größer als 0 sein

if (file_exists('backupfile.sql')){ 

$FP = fopen ('backupfile.sql', 'r'); 
$READ = fread ($FP, filesize ('backupfile.sql')); 
$READ = explode (";\n", $READ); 

foreach ($READ AS $RED) 
{ 
    mysql_query ($RED); 
} 

    echo 'Done'; 
}else{ 
    echo "no file"; 
} 

aber das gibt mir die folgenden Fehler

Warning: fread() [function.fread]: Length parameter must be greater than 0 

, wenn ich eine @ direkt vor dem fread setzte das Skript nicht Fehler, aber es führt die Sicherung nicht durch.

+0

ich denke, dass Ihre Datei nicht geöffnet werden kann (falscher Pfad, Berechtigungen). Du solltest testen ob ($ FP) {...} – thedev

Antwort

3

Nun ... Meine Vermutung aus der Fehlermeldung gelesen werden kann, wäre, dass backupfile.sql leer. Daher kann fread() nichts davon lesen.

+0

@Mike was meinst du mit "in die Datei geschrieben"? Wo schreibst du Zeug? –

+0

Ich habe festgestellt, was mit meinem Code nicht stimmt, sorry, dass ich einen großen Teil einer anderen Funktion verpasst habe - danke für die Hilfe –

1
filesize ('backupfile.sql') 

gibt Ihnen keine Dateigröße, versuchen Sie den vollständigen Pfad zu der Datei setzen, auch sicherstellen, dass PHP Berechtigung, die Datei zu lesen hat.

bearbeiten: Sie können is_readable() verwenden, um zu testen, ob die Datei

1

Sie müssen eine maximale Lesegröße angeben, wenn Sie fread verwenden. das gibt an, dass es denkt, dass Ihre Dateigröße 0 ist. Versuchen Sie FILE stattdessen, da es eine lokale Datei ist und alle ...

if (file_exists('backupfile.sql')){ 

$READ = file('backupfile.sql'); 

foreach ($READ AS $RED) 
{ 
    mysql_query ($RED); 
} 

    echo 'Done'; 
}else{ 
    echo "no file"; 
} 
Verwandte Themen