-1

目標: MySQL データベースから 1 つのレコード (行) を取得して、ユーザーがブラウザー インターフェース経由で CSV としてダウンロードできるようにする (たとえば、ユーザーのセッション ID (データベースのフィールド) に基づいて「レコードを取得する」というボタンなど)。 .

[彼らは、セッション ID とともにデータベースに書き込まれるフォームに記入したところです。私は彼らがエントリを CSV としてダウンロードできるようにしたいと考えています]

PDO がセキュリティと有効性を向上させる方法であることは理解していますが (他の提案も受け付けています)、構文が間違っているか、何かが欠けていると思います。

私が理解している限り、PDO に正しいレコードを呼び出してもらい、それを CSV にエクスポートする必要があります (2 ステップ)。

ここで同様の質問から見つけたコードのビットを混ぜ合わせてみましたが、率直に言って、それは混乱しているため、投稿する価値はありません.

私が何をする必要があるかについてのガイダンス/説明は大歓迎です。

4

1 に答える 1

0

単一のクエリで MySQL に CSV を作成させることができます。SELECT ... INTOSyntaxの下に記載されているように:

多くのプログラムで使用されるコンマ区切り値 (CSV) 形式でファイルを生成する例を次に示します。

SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt'
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  LINES TERMINATED BY '\n'
  FROM test_table;

次に、作成したファイルをユーザーに返すだけですreadfile()

ただし、現在の方法で行うには、次のようにします。

$dbh = new PDO("mysql:dbname=$dbname;charset=utf8", $username, $password);
$qry = $dbh->query('SELECT a,b,a+b FROM test_table');

$fp = fopen('php://output', 'w');
while ($row = $qry->fetch(PDO::FETCH_NUM)) fputcsv($fp, $row);
fclose($fp);
于 2012-09-10T08:25:44.180 に答える