こんにちわ。
現在、XAMPP(1.6)にて開発をおこなっています。
MySQL Ver 5.0.51
PHP 5.2.5
Web上からcsvファイルを参照して、作成してあるDB(フィールド数32)へアップロードを
おこないたいのですが、タイムアウトエラーになってしまいます。
アップするCSVファイルが54M(8万行)ほどあるため、php.ini「uplaod_max_file_size」
増やしてみたり、タイムアウト時間を長くしてみても、INSERTではタイムアウトになって
しまいます。
そのため、LOADで読込もうとしたのですが以下のようなエラーになってしまいます。
PHP初めてで'や"の使い方が間違っているのかも知れませんが、どこが間違っているのか
教えていただけますでしょうか?
↓エラー文
Parse error: syntax error, unexpected T_VARIABLE in C:\xampp\htdocs\dmti.php on line 24
↓実行文(24行目前後)$polはテーブル名
mysql_query("set names sjis");
$sql ="load data infile '$fl' into tabale $pol fields terminated by ',' enclosed by '"' lines terminated by '\r\n';"
$ret = mysql_query($sql, $db);
if($ret){
print mysql_num_rows($db)."件の登録を完了しました。.<br><br>";
$body = "<br><br>
<input type='button' value='次へ' onclick='window.location=\"news.php\"'>
<input type='button' value='ホームへ戻る' onclick='window.location=\"index.htm\"'>";
}else{
print "登録に失敗しました。";
$body .= "<br><br>
<input type='button' value='戻る' onclick='history.back()'>
<input type='button' value='ホームへ戻る' onclick='window.location=\"index.htm\"'>";
}
以上、宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
>$sql ="load data infile '$fl' into tabale $pol fields terminated by ',' enclosed by '"' lines terminated by '\r\n';"
enclodes by のあとで、二重引用符の中で二重引用符が出てきてしまいますよね?キチンとescapeしてください。
http://www.php.net/manual/ja/language.types.stri …
$sql ="load data infile '$fl' into tabale $pol fields terminated by ',' enclosed by '\"' lines terminated by '\r\n';"
というか54MBのファイルをhttpでアップロードというのはいくらなんでも無謀な気はします。とりあえずテストは少量のデータで行ってみてください(問題の切り分けが出来なくなりそうなので・・)。
shimixさん
ありがとうございます。
10件ほどのテストファイルで試してみましたが、失敗してしまいました...他に原因があるようですので調べてみます。
コマンドプロンプトなどをまったく触ったことのない人間がデータを触るのでhttpからと思ったのですが。。。
No.3
- 回答日時:
loadにするにしても、「アップロードして所定の名前で保存」までで一度htmlを返して、ボタンか何かで「loadのSQL文を投げる」ように処理を分けた方がインタフェイスとしてはいいと思います。
アップロードのPOSTのまま待つと余計に待ちが長く感じるので。同様に、insertでも途中経過を(xxx件追加しましたを何件かおきに)表示してやればいいように思います。出力制御系の関数で出来ます。
http://d.hatena.ne.jp/shimooka/20070426/1177571621
ob_flushする前に(ブラウザがバッファしないように)空白をたくさんprintしておくのが技ですかね(汗
この回答への補足
shimixさん
ありがとうございます。
ob_flush なものがあるんですね。
先ほどのものも登録に3分かかり、その後DBを除いたところ、なぜか93件の漏れが・・・
コマンドプロンプトからだと漏れないんですが、色々と調べる箇所が
あるようです。
DB登録後に計算式をあてはめて、csvとして吐き出したいのですが、まだまだ先は流そうです。
No.2
- 回答日時:
>10件ほどのテストファイルで試してみましたが、失敗してしまいました...
>他に原因があるようですので調べてみます。
とりあえずは$sqlにセットした内容をprint $sqlで確認して、同じような内容がSQL文単独で実行可能かどうかチェックしてくださいね。私は投げたことがないSQL文のときは、必ずphpMyAdminなどで投げてみてからphpに組み込みます(小心者なので・・)。
54MBは・・ファイルの転送だけFTPにするとか、HTTPのままとしてもZIPにして(テキストなので劇的に減るはず)でアップロードしてサーバ側で展開して使うとか、何か考えたほうがいいでしょうねぇ。
shimixさん
度々ありがとうございます。
配列の状態でタイムアウトを3分にしたところ、登録はできました。。。が3分は実用レベル的に問題があるので、やはりloadで色々試してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
ftpでアップロードが出来ない
-
全角ファイル名をアップロード...
-
「クラウドにアップロード」」...
-
ftp_putとftp_fput
-
サーバーに負荷の掛けないファ...
-
youtubeに音声のみのmp4ファイ...
-
サーバーにアップロードしたい
-
ローカル(自分のパソコン上)...
-
PHPにてWebサーバー内データを...
-
アップロードの方法
-
phpでログインの有無によってフ...
-
Dreamweaver ドリームウィーバ...
-
携帯からファイルアップロード...
-
透過PNGが透過されない!!
-
データベースへの持続的接続
-
MySQLのdatetime型の月日0を削...
-
ラッパークラスって何ですか?
-
.phpと.incファイルの違いはな...
-
ファイルの行数取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
違法アップロードについて
-
「クラウドにアップロード」」...
-
youtubeに音声のみのmp4ファイ...
-
ファイルをGET送信でアップロー...
-
FTPClientで転送結果(OKかFAIL)
-
ftpでアップロードが出来ない
-
php,file_get_contentsの結果が...
-
DUMPした巨大SQLファイルをイン...
-
unlinkでどうしてもファイルが...
-
FTP接続の例外処理
-
PHPでxmlをAPIに送信する方法(P...
-
ファイルのアップロードがどう...
-
BASP21のFTPで日本語ファイル名...
-
one drive のアップロード失敗...
-
SmartyでHTMLソースの変更が反...
-
ファイルアップロードしたもの...
-
$filePath = './user_img/' . $...
-
画面遷移させずに、選択画像フ...
-
movabletypeでPDFファイルをア...
おすすめ情報