在PHP中使用fopen和fwrite时的资源ID#7

时间:2012-05-04 18:34:44

标签: php mysql fopen fwrite

我正在尝试在PHP中创建下载链接,以便您可以在表格中下载信息。我刚开始写它并遇到了麻烦。以下是我到目前为止的情况:

 <?php
 $sql = "SELECT * FROM " . $survey . ";";
 $result = mysql_query($sql)
    or die(mysql_error());
 $row = mysql_fetch_assoc($result);


 $something = "This is text";
 $myFile = "data.txt";
 $fh = fopen($myFile, 'w') or die("can't open file");

 $download_data = "";
 foreach ($row as $k=>$v){
        $download_data .= $k . "=" . $v . "\n";
 }
 fwrite($fh, $download_data);
 fclose($fh);

 echo $download_data;

 ?>
 <a href="data.txt">Download </a>

它应该显示类似Code = 1 Name = John等。当我打开txt文件时,它只是说资源ID#7。奇怪的是,当我回显$ download_data时,它在网页中正确显示。为了将整个字符串放入文本文件

,我是否有一些与fwrite有关的特殊内容

(注意:我已经使用了mysql_fetch_array和mysql_fetch_assoc,两者都有相同的结果。另外,如果我只是声明一个像$ test =这样的变量,那么这是一个测试“;它可以工作)。

编辑: 我已经尝试在脚本中注释掉所有其他代码,我得到了相同的结果。打印$ download_data显示正确的结果,但文本文件仍然只显示资源ID#7。我甚至尝试删除txt文件,当它被重新创建时,它也会做同样的事情。

1 个答案:

答案 0 :(得分:0)

你几乎肯定没有用示例代码向我们展示整个图片。

您可能会在文件中写下以下内容之一:

  1. 文件句柄$fh
  2. mysql_query()
  3. 返回的结果

    检查您是否混淆了$result$row。甚至更好,发布所有代码。