0

テーブル内の情報をダウンロードできるように、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 ファイルを開くと、単に Resource id #7 と表示されます。奇妙な点は、$download_data をエコーすると、Web ページで正しく表示されることです。文字列全体をテキスト ファイルに取得するために、fwrite を使用する必要がある特別なことはありますか

(注: mysql_fetch_array と mysql_fetch_assoc の両方を使用しましたが、どちらも同じ結果になりました。また、 $test = "this is a test"; のように変数を宣言するだけでも機能します)。

編集:スクリプト内の他のすべてのコードをコメントアウトしようとしましたが、同じ結果が得られました。$download_data を印刷すると正しい結果が表示されますが、テキスト ファイルにはまだリソース ID #7 しか表示されていません。txtファイルを削除しようとしましたが、再作成すると同じことが起こります。

4

1 に答える 1

0

サンプルコードで全体像を示していないことはほぼ確実です。

次のいずれかをファイルに書き込んでいる可能性があります。

  1. ファイルハンドル、$fh
  2. から返された結果mysql_query()

混同していないことを確認して$resultください$row。またはさらに良いことに、すべてのコードを投稿してください。

于 2012-05-04T19:40:31.993 に答える