0

MySQL データベースのデータを txt ファイルに書き込もうとしています。現在、htmlのテキストエリアタグに入れていますが、代わりにtxtファイルに入れられないようです。これが私がテキストエリアとして持っているものです:

$pairresult = mysqli_query($conmysql,"SELECT * FROM orders WHERE order_number IN ( SELECT order_number FROM orders GROUP BY order_number HAVING count(ordern_number) > 1 ) ORDER BY order_number");
echo "<h4>Customers with Multiple Orders</h4><textarea rows=\"5\" cols=\"90\" readonly>";
while($row = mysqli_fetch_array($pairresult))
  {
  echo str_replace("&","\&",$row['shipment_address_name']) . "\n";
  echo str_replace("&","\&",$row['shipment_address_street']) . "\n";
  if ( !empty($row['shipment_address_street_2']) ) {
  echo str_replace("&","\&",$row['shipment_address_street_2']) . "\n";
  } else {
  }
  echo str_replace("&","\&",$row['shipment_address_city']) . "\n";
  echo str_replace("&","\&",$row['shipment_address_postal_code']) . "\n";
  if ( !empty($row['customer_phone']) ) {
  echo str_replace("&","\&",$row['customer_phone']) . "\n";
  } else {
  }
  echo "(" . $row['fulfillment_line_item_id'] . ")\n";
  echo "[" . $row['item_name'] . "]\n\n";
  }
echo "</textarea><br />";

スクリプトの別の部分にも同様のビットがありますが、txt ファイルに正常に書き込む if ステートメントなどはありません。

$pairresult = mysqli_query($conmysql,"SELECT * FROM orders WHERE order_number IN ( SELECT order_number FROM orders GROUP BY order_number HAVING count(order_number) > 1 ) ORDER BY order_number");
while($row = mysqli_fetch_array($pairresult))
  {
  $multiple = "productmultiple_tracking($filetimestamp).csv";
  $handle = fopen($grouponmultiple, 'a') or die('Cannot open file:  '.$multiple);
  $data = "\"" . $row['fulfillment_line_item_id'] . "\",\"" . $row['fulfillment_line_item_id'] . "\",\"YDL\",\"\"\n";
  fwrite($handle, $data);
  fclose($handle);
    }
  echo "<a href=\"$multiple\">Download Template</a><br />";

テキストエリアのそのビットを同じ形式のtxtファイルに取得するにはどうすればよいですか?

4

2 に答える 2

1

echo最初のサンプルですべてを置き換え$data .=て、テキストを $data 変数に入れます。2 番目の例のように $data を保存した後。

于 2013-09-13T09:16:07.640 に答える
0
      <?php
       $pdo = new PDO(...);
       $results = $pdo->query("SELECT * FROM myTable INTO OUTFILE 'data.txt'");
       $dummy = $result->fetchAll(); 

data.txt ファイルは MySQL サーバーに書き込まれます。ディレクトリは、mysqld プロセスの uid によって書き込み可能である必要があります。既存のファイルは上書きされず、FILE SQL 権限が必要です。

2 番目の方法: mysqldump を使用してフラット テキスト ファイルに出力します (@OMG Ponies が述べたように):

            mysqldump -t -T <directory> <database> <table>

これは INTO OUTFILE のように機能し、MySQL サーバー ホストで実行する必要があり、ディレクトリは mysqld uid によって書き込み可能である必要があります。

3 番目のオプション: mysql クライアントでクエリを実行し、テキストを出力します。

        mysql -B -e "SELECT * FROM MyTable" <database> > mytable.txt

これは任意のホストで実行でき、特別な権限やディレクトリのアクセス許可は必要ありません。ただし、NULL は、mysqldump または INTO OUTFILE の場合のように処理されない場合があります。

于 2013-09-13T09:21:13.207 に答える