ここから本文です

ただいまphpを勉強しています。

アバター

ID非公開さん

2014/3/1816:48:55

ただいまphpを勉強しています。

それで、php内でSQL文を作成し、そのSELECTしたSQL文でSQL Serverから取得した結果をcsv形式でダウンロード、またはブラウザでその結果を表示したいと
思ってるのですがどうすればいいのでしょうか。BCPを使う方法なども検索したのですが、イマイチ理解できませんでしたので質問させて頂きました。よろしくお願いします。

閲覧数:
210
回答数:
3

違反報告

ベストアンサーに選ばれた回答

vsa********さん

2014/3/2601:13:46

PHPからの処理を実行する場合、それは下記(愉快)に関する参照です。
Qiitaによってデータベースに接続する場合の結論 - PHP。
しかしながら、SQLServerはといえばMySQL、SQLiteなどと異なり、それは、情報がさらにほとんどないと思います、しかし、それはsetlocaleです。;
// fputcsvの改ざんされた文字予防。
実行し、テンポラリファイルを準備した後に、fputcsv関数は呼ばれます。また、それはファイル・ポインターの中で書きます、また、それは最後の目標上にあります、巻き戻す;。
ヘッダー;
ヘッダー;

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

ryo********さん

編集あり2014/3/1818:26:00

もしPHPから処理をされる場合は下記を参考にどうぞ。

Qiita - PHPでデータベースに接続するときのまとめ
http://qiita.com/mpyw/items/b00b72c5c95aac573b71

ただ、SQLServerとなると…MySQLやSQLiteなどと違って情報も少ないと思うので、試行錯誤は必至かもしれません。CSVファイルを生成する場合は

setlocale(LC_ALL, 'ja_JP.UTF-8'); // fputcsvの文字化け防止
$fp = tmpfile();

としてテンポラリファイルを準備した後fputcsv関数をコールしてファイルポインタに書き込んでいき、最終的に

rewind($fp);
header('Content-Disposition: attachment; filename=' . $filename . '.csv');
header('Content-Type: text/csv; charset=utf-8');
fpassthru($fp);

としてブラウザに対して直接出力すればダウンロードダイアログが出ると思います。このページにはHTMLなど他のものは一切書けないので注意してください。

agu********さん

2014/3/1817:26:15

BCP使うならexecで実行するだけでいいとは思います(BCPコマンドはわかるのですよね)。

http://www.php.net/manual/ja/function.exec.php
http://blog.livedoor.jp/akf0/archives/51354837.html



それ以外の方法、つまりphpから接続してどうこうするとなると(相手がSQLServerだと)まずはインストールからですね。

http://www.php.net/manual/ja/sqlsrv.requirements.php

あとはPDOでいけるのかどうか・・・。やったことがないのでわかりません(汗

http://www.php.net/manual/ja/book.pdo.php
http://www.php.net/manual/ja/ref.pdo-sqlsrv.php

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる