警告:fread()[function.fread]:Length参数必须大于0

时间:2010-11-19 14:42:31

标签: php mysql

我有一个托管有1and1的网站 - 谁没用!由于某种原因,他们提供的备份脚本不再有效,他们无法为我提供答案!所以我以为我会写自己的,这是我的代码:

  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";
 }

然而,这给了我以下错误

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

如果我放置一个@front的fread脚本没有错误但它不执行备份。

3 个答案:

答案 0 :(得分:3)

嗯......我从错误消息中猜到backupfile.sql是空的。因此,fread()无法从中读取任何内容。

答案 1 :(得分:1)

filesize ( 'backupfile.sql')

没有给你一个文件大小,试着放入文件的完整路径,同时确保PHP有权读取文件。

编辑:您可以使用is_readable()来测试是否可以读取文件

答案 2 :(得分:1)

使用fread时必须指定最大读取大小。这表明它认为你的文件大小为0.尝试使用FILE,因为它是一个本地文件,所有...

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

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

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

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