トップページphp
1001コメント326KB

【PHP】下らねぇ質問はここに書き込みやがれ 72

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/08/16(土) 12:01:25ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 71
http://pc11.2ch.net/test/read.cgi/php/1216291372/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0177nobodyさん2008/08/20(水) 04:33:56ID:???
>>176
アドバイスありがとうございました。
> 謎なこといってるがSQL使わずにどうやってデータを取り出すというのだ?
すみません、誤解を招く表現で。
いいたかったのは、データ件数が7300万件以上ありまして、
UNIQUEキーを設定した仮テーブルを作ってコピーすると、
時間が掛かってしまうため、ミドルウェア層に位置する
SQLの範疇では手に負えないというのが以前の結論でした。

なので、アプリケーション層に位置する高級言語でなんとか処理できないと
考えたのですが、やはりそこでも無理そうでしょうか。
phpで無理でしたら、JavaとかC++のスレでも聞こうと思っています。
0178nobodyさん2008/08/20(水) 04:36:44ID:PkKH7Tnj
すみません、age忘れていました。
0179nobodyさん2008/08/20(水) 04:42:02ID:???
全件ループして判定すればいいんじゃないのか
0180nobodyさん2008/08/20(水) 04:45:21ID:???
PHPは大規模な処理には向いていない言語なので
7300万件もあるなら他の言語のほうが処理速度はあがると思うよ
C++が使えるならそうしたほうがいいかも
0181nobodyさん2008/08/20(水) 07:43:47ID:???
>PHPは大規模な処理には向いていない言語なので
これは釣り?それとも本気?
本気でいっているならメモリーキャッシュとか使えば、
Java並みの実行速度にはなる。
0182nobodyさん2008/08/20(水) 08:03:10ID:???
>>181
Java並にはなってもC++並にはならんわな
0183nobodyさん2008/08/20(水) 08:37:14ID:???
つかC++書けるなら目的の処理を行うプログラム書いて
そっちで処理すればいいだろ。
実行時間やメモリサイズの縛りがあるPHPで、
わざわざ実行する必要はない罠。
0184nobodyさん2008/08/20(水) 08:59:03ID:???
MySQLのことはよく知らんがDBに関数作れないの?
0185nobodyさん2008/08/20(水) 09:43:41ID:???
> 実行時間やメモリサイズの縛りがあるPHPで、
だから、それは設定の問題でしょ。もしくは、環境の問題でしょ。
言語仕様の問題みたいにいうと変な誤解する人がいるぞ。
0186nobodyさん2008/08/20(水) 10:03:49ID:???
>>184
作れるがそれをした所でDBで時間が掛かってしまうから駄目なんじゃないの?

7400万件あってもPHPで十分処理できるよ
まぁサーバ次第だけど

てかこんな所じゃなくコンサルたのめよ
0187nobodyさん2008/08/20(水) 10:13:36ID:???
そもそもINSERT IGNORE INTO SELECTが駄目なのは何で?
0188nobodyさん2008/08/20(水) 10:14:14ID:???
管理コンソールから操作すりゃいいのにって思うのは俺だけか?
0189nobodyさん2008/08/20(水) 11:35:11ID:???
INSERTとSELECTが駄目って
データベース使う意味まるで無いよなw
0190nobodyさん2008/08/20(水) 11:41:13ID:uoEIdMLz
simplexml_load_fileでXMLデータを取得する時に

<field>
<hoge name="test1">val1</hoge>
<hoge name="test2">val2</hoge>
</field>

↑これを↓のように取り込みたいのだけど、

$xml["field"]["hoge"]["test1"]="val1";
$xml["field"]["hoge"]["test2"]="val2";

実際やってみたら↓という風になっちゃうんです。

$xml["field"]["hoge"][0]="val1";
$xml["field"]["hoge"][1]="val2";

前者のように得たい場合、何か良い手はないでしょうか。
(XMLの書式を変えろとかは無しの方向で)
0191nobodyさん2008/08/20(水) 11:51:31ID:???
>>180
> PHPは大規模な処理には向いていない言語なので
> 7300万件もあるなら他の言語のほうが処理速度はあがると思うよ
> C++が使えるならそうしたほうがいいかも

あんた実戦経験無し?

7300万件とかそんなにデータが多い場合・・・いや、少なくてもだけど
普通は高速にかつ楽に開発する為に、既に作られている、
ライブラリやデータベースシステムを使う。

ライブラリやデータベースシステムがC++などで作られているから
何の問題も無い。

君の発想は一から全部作る場合の発想。
何らかの理由で世の中に既にある物を置き換えるものを
作ろうとしているのなら話は別だが、
大量のデータを処理する為のライブラリを
C++で作るとかアフォのやること。
0192nobodyさん2008/08/20(水) 11:58:45ID:???
>>177
> phpで無理でしたら、JavaとかC++のスレでも聞こうと思っています。

JavaやC++でもPHPと同じように無理だから。
0193nobodyさん2008/08/20(水) 12:03:06ID:nVxHuE1Q
http://blog.ohgaki.net/php-session
このセッショントラバーサル脆弱性って
「セッションハンドラを自前で設定して、
しかもそれをファイルシステムに指定している」という状況でないと
発現しないの?
何もいじらずにファイルシステムのセッション使ってる場合は大丈夫?
0194nobodyさん2008/08/20(水) 12:19:19ID:???
下らない質問ですみません。
'->'とか'=>'は、何と読めば良いのでしょう?。
0195nobodyさん2008/08/20(水) 12:25:51ID:???
>>191
高速なライブラリやDBを使うなんてあたりまえの話で、その上でPHPよりC++で
組んだほうが処理は速いんじゃないか、としか読めないんだが
なんでライブラリを作るなんて話になるんだろう

PHPで大規模処理ができるかどうかと言われればできる
けど向いてるかと言われればそうでもないと思う
少なくともデータ処理のバッチをPHPで作ろうとは思わんなあ
バッチ以外の部分がPHPなので保守を考えてとか、なんか理由でもなければね
0196nobodyさん2008/08/20(水) 12:29:04ID:???
>>190
fieldが最上位なら普通に考えて無理じゃないか
0197nobodyさん2008/08/20(水) 12:39:37ID:???
>>193
セッションIDの文字列チェックが行われないってヤツだな
標準ハンドラではチェックされているから、独自実装の場合だけ脆弱性を帯びる
ファイルシステムだけじゃなくてデータベースに保存している場合でもインジェクションを意識しなきゃダメだろうな

例えばファイルシステム利用の場合でセッションIDに「/../」があれば上位ディレクトリが保存先になるってこと
あぶないあぶない

>>194
読みなんてあったっけ?
「->」 オブジェクトメンバ、オブジェクトメンバメソッドの「参照記号」とでも呼べばいいのか?
「=>」 連想配列の・・・・何?
0198nobodyさん2008/08/20(水) 12:43:16ID:???
分からないんですよ。アロー演算子のナニかとしか。=>なんて他の言語にありましたっけ?。
自分も人に聞かれて、何にも頭に思い浮かばず困ってしまったんです。
0199nobodyさん2008/08/20(水) 12:44:45ID:???
矢印
0200nobodyさん2008/08/20(水) 13:11:21ID:???
http://jp.php.net/manual/ja/tokens.php
内部名。
0201nobodyさん2008/08/20(水) 13:21:14ID:???
ありがとうございます!。
-> が T_OBJECT_OPERATOR、=> が T_DOUBLE_ARROW って、作った人も適当に考えてたのね。
=>これ、何とかならなかったのかぁ。
0202nobodyさん2008/08/20(水) 13:48:35ID:???
フレームワークを使った作品の納品てどうしてる?
フレームワークごと渡すの?
それとも設置の時点でインストールしてもらうの?
0203nobodyさん2008/08/20(水) 13:49:07ID:???
おお、ありがとうございます。
T_OBJECT_OPERATORはまだしも、T_DOUBLE_ARROW って、作った人もいい加減だったのね。
何とかならなかったのかなぁ。
0204nobodyさん2008/08/20(水) 13:57:24ID:???
>>202
作る前に決める
0205nobodyさん2008/08/20(水) 13:58:50ID:???
->は「ハイフン大なり」
=>は「イコール大なり」
0206nobodyさん2008/08/20(水) 14:06:54ID:???
>>205
ナイスオチ

口に出すことがほとんどないから特に意識てなかったんだろうな

>>198
Perlの連想配列も=>を使うぜ
PHPはPerlの拡張から始まったしその名残じゃないかな
0207nobodyさん2008/08/20(水) 15:46:15ID:1OHJU2Jn
JavaScriptとPHPの変数の受け渡しについて教えてください。

<script type="text/javascript">
<!--
<?php
$str = "document.getElementById('test').value";
print("出力結果:$str");
?>
// -->
</script>
<span id=test>hogehoge</span>

例としてtestの値であるhogehogeをJavaScriptを用いてPHP変数に受け渡したいのですが
上記の方法で実行してもできません
いったいどのようにすればできるのでしょうか?
0208nobodyさん2008/08/20(水) 15:47:57ID:???
>>207
PHPでする必要ないじゃん
0209nobodyさん2008/08/20(水) 15:49:45ID:???
>>207
同時にフォームのinput type="hidden"にセットしてPOSTするとか、
httpRequestのGETパラメタで投げるとか幾らでもやりようあるように思うが。
0210nobodyさん2008/08/20(水) 15:54:41ID:???
>>208
氏ね
>>209
あり
0211nobodyさん2008/08/20(水) 15:59:41ID:???
210はツンデレ。本音は↓

 ':,     ',   _____,,.. -‐ ''"´ ̄ ̄`"'' ー 、.,          /
  ':,    ',   >' ´             `ヽ.       /  し バ
   ':,     /                    ヽ.     ,'   な カ
    ':,   ,:' /   /   ,'´        ヽ.     ':,/Ti  i.   い に
. \    ,' /   /  ,'  !      ;   ',  ヽ__ /::::| | |   で 
   \  / ,'   ,'!  /!  !   ;  /!   i  「:::|'´::::::::| | .!.   く
     ∠__,!   / !メ、」_,,./|   /! / !   ハ! |__」<:::::」」 |.   れ
`"''  、..,,_  !  / ,ァ7´, `iヽ| / |ヽ、」ニイ、 |  ! |^ヽ、」」  |.   る
       i,/レイ i┘ i. レ'   'ア´!_」 ハヽ|   |   | ∠   ! ?
─--     /   !  ゝ- '       !    ! !   |   |  `ヽ.
      /   7/l/l/   、     `'ー‐ '_ノ!   |  i  |    ` ' ー---
,. -──-'、  ,人    `i`ァー-- 、  /l/l/l |    !. |  |
       ヽ.ソ  `: 、.   レ'    ',   u ,/|    |  !  |
 そ  知  i  /ーナ= 、 '、    ノ  ,.イ,カ    !  |  |
 の   っ  .|ヘ./|/レへ`>-r  =ニi´、.,_ |  i  ハ  ! ,'
 く   て   !     _,.イ´ヽ.7   /  /:::| /レ'  レ'レ'
 ら  る   |   /7:::::!  ○O'´  /::::::レ'ヽ.
 い  .わ  .|  /  /:::::::レ'/ムヽ.  /::::::::/   ヽ.
 ! !  よ   ! ./  ,':::::::::::!/ ハ:::::`´:::::::::::;
0212nobodyさん2008/08/20(水) 16:01:52ID:???
>>209
どうもありがとうございます
0213nobodyさん2008/08/20(水) 16:22:25ID:???
>>210にはびっくり
みんなの本音は>>208と同じだと思うぞ

目的が見えないんだよ
>>208の言いたいことは、testの値を出力するならjavascriptのdocument.writeでいいじゃんってこと
>>209のアドバイスはtestの値をPHPで加工する場合のこと(POSTがページ変移ありで、httpRequestはページ変移なし)
ちなみに>>207の説明でもソースでも、上の2通りのどっちか分からん

どうしたいかは分かる、でも何がしたいか分からんってことだな
0214nobodyさん2008/08/20(水) 16:28:50ID:???
騙りにマジレスかっこわるい
0215nobodyさん2008/08/20(水) 16:30:53ID:???
>>214
208だが煽ったつもりはないぜ
>>207がしたいことをそのままソースで読み取ったわけだからPHPでせず
>>213のいうとおりdocument.writeでできるってことを言いたかっただけ
0216nobodyさん2008/08/20(水) 16:43:45ID:???
printするのはあくまで例だろ。そんなことも分かんないの?
0217nobodyさん2008/08/20(水) 16:45:36ID:???
>>216
だから質問の仕方に目的がないんだよ
0218nobodyさん2008/08/20(水) 16:46:14ID:???
一言アドバイスすれば、そもそもPHPはC++言語で作られていて、
少なくてもC++よりも速くならない。
いや、速くならないどころか遅くなる。

変数を割り当てるたびにメモリーを割り当てるから、
ループの中で変数をつくったりすると、
メモリーリークが頻発する。だから、大規模開発には向かない。

そもそも、PHPはJAVAのようなガーベージコレクションが効率よく動作しない。
0219nobodyさん2008/08/20(水) 16:47:28ID:???
よそでやれカスが
0220nobodyさん2008/08/20(水) 16:50:57ID:???
>>219
さんざん反論しておいて、反論できなくなったら、
今更スレ違いを主張するのか。主張に全く一貫性がないな。
0221nobodyさん2008/08/20(水) 16:54:49ID:???
>>217
クライアントサイドからサーバサイドに逆に値を受け渡したい場合だってあるだろ。
想像力が貧困すぎ。
もしかして全く予想できない?document.writeするだけしか思いつかない?
初心者が下手に回答すると恥かくからやめとけ、な。
0222nobodyさん2008/08/20(水) 16:55:58ID:???
>>220 すげー基地害www
0223nobodyさん2008/08/20(水) 16:56:46ID:???
>>221
だったらそう質問すればよくね?
0224nobodyさん2008/08/20(水) 16:57:20ID:???
>>222
顔真っ赤んして何してるの?
0225nobodyさん2008/08/20(水) 17:03:24ID:???
>>221
クライアントからサーバへ送りたいのはわかるが説明とソースからは必要性を感じない
だから質問にもっと詳しい情報がほしいって意見じゃないのか?

>>218
PHPってC++で出来てたんだ・・・libcppを呼んでないんだが・・・共有じゃなくて静的に組み込んでるのか?
0226nobodyさん2008/08/20(水) 17:09:50ID:???
これが夏休みって奴か・・・
0227nobodyさん2008/08/20(水) 17:10:57ID:???
C++がPHPより早いってのは正論だろ
一般的に低級言語より高級言語のほうが出来ることも少ないし処理速度は遅くなる
C++は高級言語だがPHPと比較するとC++のほうが低級に位置する
そもそもPHPがインタプリタな時点で(ry
で脊椎反射でレスしてる馬鹿はちゃんとスレ主(>>177)の意図を汲め
0228nobodyさん2008/08/20(水) 17:15:28ID:???
>なので、アプリケーション層に位置する高級言語でなんとか処理できないと
>考えたのですが、やはりそこでも無理そうでしょうか。
>phpで無理でしたら、JavaとかC++のスレでも聞こうと思っています。

無理そうではないが時間がかかるのは一緒
処理時間に拘ってるようだから少しでも早く処理を終わらせたいならC++のほうがいい

こうですか?わかりません
0229nobodyさん2008/08/20(水) 17:15:52ID:???
なに当たり前のことを車輪の再発明のように議論しあってんの?
マジきめえwwww
0230nobodyさん2008/08/20(水) 17:17:57ID:LhJjLaqd
Windows XP SP3 + XAMPP 1.6.7 で開発してるんですけど、
move_uploaded_fileしようとしてもfailed to open stream: Permission deniedになっちゃいます。

保存し直すディレクトリの権限はeveryoneでフルコントロールにしてるし、
(もちろんusersもログインしてるユーザもフルコントロール)なにがいけないのが
全然分かりません。

分かる方いらっしゃったらどうか教えてください。
0231nobodyさん2008/08/20(水) 17:23:18ID:???
全ては挑発的な脊椎反射レスしか返せない>>191がアホだから悪いってことでオシマイ
0232nobodyさん2008/08/20(水) 17:25:09ID:???
>>230
とりあえずmove_uploaded_file近辺のソース
02332302008/08/20(水) 17:29:03ID:???
>>232

if(!is_uploaded_file($_FILES['image']['tmp_name']))
{
echo 'Error';
return;
}
else if(is_uploaded_file($_FILES['image']['tmp_name']))
{
$tmp .= 'tmp_name: '.$_FILES['image']['tmp_name'].'<br>';
$tmp .= 'name: '.$_FILES['image']['name'].'<br>';
$tmp .= 'new_path: '.WWW_ROOT.IMG_PATH.'<br>';
echo $tmp;
move_uploaded_file(@$_FILES['image']['tmp_name'], IMG_PATH);
}

こんな感じです。
IMG_PATHはフルパスをdefineしてます。
0234nobodyさん2008/08/20(水) 17:30:20ID:???
IMG_PATHをうp
0235nobodyさん2008/08/20(水) 17:31:00ID:???
>>177
>UNIQUEキーを設定した仮テーブルを作ってコピーすると、
>時間が掛かってしまうため、ミドルウェア層に位置する
>SQLの範疇では手に負えないというのが以前の結論でした。

どんな処理するんだ?
>>187にも答えてくれ。
0236nobodyさん2008/08/20(水) 17:33:00ID:???
>>227
> そもそもPHPがインタプリタな時点で(ry

世の中に、まだ純粋なインタプリタって存在しているのかね?

マイナーな言語ならしらんが、
今はソースコードをコンパイルして動かしているだろ?

ページ開くたびに毎回コンパイルする必要はあるが
そのコンパイルの時間はかかるが、それが終わったら
あとはネイティブとほぼ同じだろ。

ページ開くたびにコンパイルしない方法もあるし。
02372302008/08/20(水) 17:36:37ID:???
>>234

define('IMG_PATH', "C:\\xampp\\htdocs\\test\\logo");

です。
0238nobodyさん2008/08/20(水) 17:48:46ID:???
>>237
define('IMG_PATH', "C:\xampp\htdocs\test\logo\");
これはやってみた?
02392302008/08/20(水) 17:50:39ID:???
>>238

それもやってみました。
failed to open stream:Invalid argumentエラーが出ました。
0240nobodyさん2008/08/20(水) 17:50:45ID:???
>>238
\\じゃないと"がエスケープ処理させるぞwwww

>>237
パスはあってるんだよな・・・
chmodで権限0777にしても同じかな?
02412302008/08/20(水) 17:54:40ID:???
>>240

フォルダのプロパティ→セキュリティからの設定は一通り全部フルコントロールにしたんですが…。

chmodってWindowsで使えるんですか?
0242nobodyさん2008/08/20(水) 17:55:58ID:???
>define('IMG_PATH', "C:\\xampp\\htdocs\\test\\logo");
logoの後ろに\\とか?

アップローダーのようなものは2年前に作ったきりでどういうのか忘れたけど
当時のソースがこうなってる
move_uploaded_file($_FILES['test']['tmp_name'], "D\htdocs\test\");

>>240
Windowsはパーミッション変えれないでしょ
02432302008/08/20(水) 17:58:31ID:???
>>242

うーん、やってみたけどダメでした。

D\htdocs\test\
↑ここのコロンはなしでしたか?
02442302008/08/20(水) 18:05:54ID:???
>>242さん

ダメでした、コロン取ってもできませんでした。。
0245nobodyさん2008/08/20(水) 18:11:59ID:???
move_uploaded_file使ったことないんで推測だが

bool move_uploaded_file ( string $filename , string $destination )
この関数は、filename で指定されたファイルが
(PHP の HTTP POST アップロード機構によりアップロードされたという意味で)
有効なアップロードファイルであるかどうかを確認します。
そのファイルが有効な場合、destination で指定したファイル名に移動されます。

となってるわけだが
ファイル名は指定してないのが原因?
define('IMG_PATH', "C:\\xampp\\htdocs\\test\\logo\\");
move_uploaded_file(@$_FILES['image']['tmp_name'], IMG_PATH . "ファイル名");
0246nobodyさん2008/08/20(水) 18:14:37ID:hs1BSUYJ
インタープリタってあれだろ?ソースコードを実行するたびに翻訳しなきゃならんあれだろ?

まるで、おまえらの女付き合いと同じじゃねえか。。

女経験がないから、女が違うたびにあーでもないこーでもないって思案を重ね、ようやくエッチまで持っていけるんだろ?

その点、俺なんて、幾多の女を渡り歩いてきたから、もう女と付き合う手法がコンパイルされた状態でインプットされてるわけ。

わかるか?
0247nobodyさん2008/08/20(水) 18:14:43ID:???
そのとおり
move_uploaded_fileの第2引数を「ファイル名」にしよう
0248nobodyさん2008/08/20(水) 18:15:28ID:hs1BSUYJ
ムキー!!
02492302008/08/20(水) 18:16:30ID:???
>>245
02502422008/08/20(水) 18:17:35ID:???
混乱させてごめん
なんか勘違いしてたw
動かなかったわorz
動いたものだとおもったんだけど・・・おかしいなぁ
02512302008/08/20(水) 18:17:37ID:???
>>245
>>247
できました!
本当にありがとうございます!!
0252nobodyさん2008/08/20(水) 18:25:52ID:???
スレチだがSmartyでforみたいなループないんだな
ちょっと不便
0253nobodyさん2008/08/20(水) 18:32:42ID:???
つまり、お前は本当のプロの仕事というのを見たことがないんだよ。

本当のプロの仕事っていうのは、
普通の人間が5、10年勉強しておいつける代物ではない。

ある程度一人で出来るようになったからって、
勝手にのぼせ上がっているだけ、お前は。
0254nobodyさん2008/08/20(水) 18:36:18ID:???
本日のキチガイID:hs1BSUYJ
0255nobodyさん2008/08/20(水) 18:36:46ID:???
>>252
forの何を求めてるかしらんけど、sectionではあかんの?
0256nobodyさん2008/08/20(水) 18:37:03ID:???
で、どっかのjavaやc++のスレで回答もらったんかね
0257nobodyさん2008/08/20(水) 18:38:04ID:???
やっぱりxampp使ってる奴は糞な質問する奴が多いな
0258nobodyさん2008/08/20(水) 18:39:29ID:???
>>255
あああああああああああああ
すっかり忘れてた
ありがとうございます
そしてsectionさんごめんなさい
0259nobodyさん2008/08/20(水) 18:40:14ID:8rByw6kX
readfileとかでDLさせてる途中で相手が切ったり通信がぶち切れたりした場合は
その下のスクリプトは実行されてるんでしょうか?
0260nobodyさん2008/08/20(水) 18:51:32ID:hs1BSUYJ
>>254 プギャーm9(^д^)<嫉妬厨乙wwwwwwwww
0261nobodyさん2008/08/20(水) 18:53:05ID:???
>>259
される
0262nobodyさん2008/08/20(水) 18:57:11ID:hs1BSUYJ

           早l
   / ̄ヽ    目               今
   , o   ', 食  に         _     .日
   レ、ヮ __/  べご l       /  \    は
     / ヽ  よは.l       {@  @ i    納
   _/   l ヽ うん l       } し_  /   期
   しl   i i  を l        > ⊃ <   日
     l   ート   l       / l    ヽ   か
 ̄ ̄¨¨~~ ‐‐‐---─|      / /l   丶 .l 
      ___    |      / / l    } l 
 /ニュ トーイ    l    /ユ¨‐‐- 、_  l ! 
 ヽ廿'  .`廿'    l _ /   ` ヽ__  `-{し| 
   n  .____  l /         `ヽ }/
  三三ニ--‐‐'  l          / //  
 ̄ ̄ ¨¨¨ー─‐‐--- ,,, __ ____/ /_/                  ´
      ,, _    |         ̄¨¨` ー──---
モパ  /     `、  |          _
グク /       ヽ .| モパ    /   ヽ モパ
モパ./  ●    ●l | グク   l @  @ l グク  パパー会社来なくていいってー>
グク l  U  し  U l | モパ   l  U  l モパ
   l u  ___ u l | グク  __/=テヽつ く グク
    >u、 _` --' _Uィ l    /キ' ~ __,,-、 ヽ
  /  0   ̄  uヽ |    l  ヘ  ゝ__ノ-' ヽ
. /   u     0  ヽ|    ~ l   ヽ-┬ '
 テ==tニト      | / て=-、─----‐‐─ヽ
/ ̄) ̄        ト'    ト= -'   <ニ>
0263nobodyさん2008/08/20(水) 18:59:09ID:???
>>262
お前wwwwwwwwww洒落にならんAAはるなwwwwwww
0264nobodyさん2008/08/20(水) 19:02:50ID:???
どういう意味なの?
0265nobodyさん2008/08/20(水) 19:04:50ID:???
納期日(プログラム作成終了)をもって、首。
0266nobodyさん2008/08/20(水) 19:06:23ID:???
ありがと。
そんなことがよくあるのか・・・
0267nobodyさん2008/08/20(水) 19:19:23ID:???
おれは基本的にプロジェクトがおわったら、
別のプロジェクトに変えるようにしているから関係ないわ。
同じメンバーで長くやっていると、色々な意味で成長しない。
0268174 2008/08/20(水) 19:35:25ID:PkKH7Tnj
仕事から帰ってきました。
レスが多くてびっくりしました。大変ありがたいです。
ただ、結論はphpでも一発で処理するのは難しいってことですかね。

array_uniqueのような関数があるので、
MySQLのバイナリーファイルをちょこちょこといじって、
重複データを削除してくれるような関数があると思ったのですが、なさそうですね。

7400万件をSQL経由でコピーしますと、時間的には数時間かえってこないのに加えて、
データーベースのファイル自体がコピー中に破損する現象があるので、
# バージョンがSTABLEじゃなくRELEASEレベルなのが原因かも。
関数かなんかで瞬間的にできればと思った次第です。

色々とお答え頂き、どうもありがとうございました。
C++が皆さんのお薦めということなので、C++のスレで聞いてみます。

本当にありがとうございました。
0269nobodyさん2008/08/20(水) 19:38:00ID:???
いや、だから普通にループしてチェックするんじゃだめなのか。
メモリとCPUパワーと時間さえあればできると思うが。
ローカルいじるだけなら書きやすいphpでやるのが楽。
0270nobodyさん2008/08/20(水) 19:46:06ID:???
ループ処理とか回数が増えれば増えるほどPHPが苦手な分野じゃねえか
その時間を短縮するために他の言語のほうがいいっていってんだろ
ためしにPHPとJavaとC++でループ処理比較してみれ
0271174 2008/08/20(水) 19:47:54ID:PkKH7Tnj
>>269
レスありがとうございます。
一レコードずつフェッチして、そのレコードのキーで7400万件のデータに検索して、
レコードが重複していないかチェックするという処理でしょうか。
ただ、それは、一番時間が掛かるような気がします。

私が考えられる中で考えたのは、一番最初に書きましたが、
現在UNIQUEキーが設定されていないテーブルを捨てて、
仮のテーブルを作成し、UNIQUEキーを設定し、
その仮テーブルにINSERT IGNORE INTO SELECT * FROM 〜で、
エラー無視のINSERT文の実行です。

これなら、SQL文は、CRATE, INSERT, DROP, RENAMEで終わりですが、
INSERTが数時間もしくは十数時間かかります。SQLの欠点は、
途中経過がよく分からないのも欠点です。
SELECT COUNT(*)でやっても、busy状態に陥ってコマンドが拒絶されます。
う−ん、悩ましい。
0272nobodyさん2008/08/20(水) 19:51:36ID:???
どっちにしろSQLで処理するのだから
C++だろうがphpだろうが大した差はないと思うな
もしかして、C++薦めてる人は何もかもC++でやろうと考えてるのかな
0273nobodyさん2008/08/20(水) 19:54:29ID:???
>>272
話わかってないだろ?
SQLを他言語で操作するんだから
その間のレスポンスが早い言語がいいって話だろ

>もしかして、C++薦めてる人は何もかもC++でやろうと考えてるのかな
case by caseにきまってるだろ
ただ今回はなるべく時間を短縮してやりたいっていうことだから
C++をすすめてるだけだろ
0274nobodyさん2008/08/20(水) 19:58:19ID:???
>>271
十数時間かけてやりゃいいじゃん。
C++でやるとしてもC++ならMySQLのバイナリ直接操作してunique取れるのか?どうせ単純ループだろ。
悩んでないでさっさとやれw 質問するまでもない。
0275nobodyさん2008/08/20(水) 20:10:38ID:???
>>274
だから、phpはCのオブラートに包まれているんだよ。
だから、できることは少ないし遅い。その代り開発速度は速いが。

Cは色々できる反面、処理がやっかい。自由度をとるか、効率性をとるかだよ。

あたま沸いていんじゃまいか?
0276nobodyさん2008/08/20(水) 20:13:58ID:???
>>218
大規模開発に向かない(キリッ
と言ってる暇でメモリリークするパターンを
PHP Bugsに報告しておいて欲しいな

>>259
http://www.php.net/manual/ja/features.connection-handling.php

>>174,271
UNIQUE制約付けて INSERT IGNORE ね…
これって7400万回逐次インデックスの更新が起きね?糞重そうだが
データベース板でSQL文レビューしてもらった方がいいんじゃないの
アプリケーション層でごりごりするような問題じゃないと思うよ
■ このスレッドは過去ログ倉庫に格納されています