のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:126,345,502人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレ【PHP】下らねぇ質問はID出して書き込みやがれ 114

    php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    253 : nobodyさん - 2012/01/05(木) 14:57:37.19 ID:??? (+43,+25,-1)
    だれか翻訳頼む
    254 : nobodyさん - 2012/01/05(木) 14:58:56.94 ID:??? (-6,-29,+0)
    class SQLのメンバ
    255 : nobodyさん - 2012/01/05(木) 15:09:18.10 ID:??? (-6,-29,-2)
    $this->の時点で気付こうよ
    256 : nobodyさん - 2012/01/05(木) 15:09:19.83 ID:??? (+57,+29,-3)
    一回PHPのクラスで何が出来るか勉強してくるべき
    257 : nobodyさん - 2012/01/05(木) 15:20:05.60 ID:??? (+57,+29,-2)
    クラスを知らないか、理解していない人の相談なんです。
    258 : nobodyさん - 2012/01/05(木) 15:22:06.79 ID:FPSYlk7p (+18,+29,-64)
    すみません。クラスをちゃんと理解していませんでした
    class SQLの中にrecordというファンクションがなかったので
    もともと用意されている何かだとおもったのですが
    ググってもでてこなかったので聞いてみました。

    まだよくわかっていないのでちょっとクラスについて調べてきます
    259 : nobodyさん - 2012/01/05(木) 15:25:35.51 ID:yQXwn+vl (+66,+29,-52)
    DBを使ったサービス作るんだけど、
    DB操作しやすいライブラリとかでおすすめないかな?

    プログラム自体は大したことないのに、
    テーブルやらカラムやらを大量に作らなきゃいけない予定なんで、
    SQLで書くのめんどくさいから、
    ソースコードだけで片付くものを探してるとこなんだけど
    260 : nobodyさん - 2012/01/05(木) 15:26:13.26 ID:??? (+3,-30,-77)
    もっと頭を柔らかくしようよ
    $this->recordが必ずしもファンクションとは限らないのにファンクションと決めつけてるだろ
    そんなことだといつまでも謎のままだぞ

    >if ($limit) return array_slice($this->record, $offset, $limit);
    これ見たらあー配列なんだなってわかるし
    つーことは、名前からしても$this->recordにはどこかでSELECTの結果かなにかを配列としてセットしてるメンバだとわかるだろう
    261 : nobodyさん - 2012/01/05(木) 15:26:51.23 ID:??? (+58,+28,-3)
    >>258
    recordというデータメンバもないですか。
    親クラスがあればそちらにも
    263 : nobodyさん - 2012/01/05(木) 15:30:55.18 ID:??? (+105,+29,-92)
    >>259
    そーゆーことならフレームワークのスレへ
    ただSQL書かないで最適なクエリを発行することはまず無理だと思う
    DB抽象化ライブラリがインデックスまで把握して最適なクエリを発行してくれるものがあればオレも欲しい
    265 : nobodyさん - 2012/01/05(木) 15:31:53.77 ID:??? (-11,-29,-3)
    >>262
    >protected $record = null;

    メンバとして定義されてるじゃん
    266 : nobodyさん - 2012/01/05(木) 15:33:04.94 ID:??? (+51,+29,-18)
    >>264
    まぁいい
    とりあえずクラスってなぁに?どう使えてどう動くの?ってことを30日間勉強して
    268 : nobodyさん - 2012/01/05(木) 15:36:05.47 ID:??? (+106,+29,-22)
    >>263
    了解
    おもしろそうだから、一回自作できるか挑戦して、それでもダメだったらどこかのFW探してみます
    269 : nobodyさん - 2012/01/05(木) 15:38:38.34 ID:??? (+142,+29,-31)
    >>268
    使う機能だけを関数化すればよい。
    SQLはコマンドラインでも動作する。難しければそこからやってみてそのあとPHPにするというのもある。
    270 : nobodyさん - 2012/01/05(木) 15:44:23.54 ID:??? (+72,+29,-3)
    >>269
    何言ってるのこのひと
    すごく的外れ
    272 : nobodyさん - 2012/01/05(木) 15:50:04.64 ID:??? (-1,-29,-21)
    $this->recordやrecordでソースを検索したら代入しているところが出てくる。
    273 : 262 - 2012/01/05(木) 15:51:51.85 ID:FPSYlk7p (-21,+28,+0)
    ありがとうございます。もう一度調べてみます
    274 : nobodyさん - 2012/01/05(木) 16:09:56.66 ID:??? (+3,-29,-25)
    $this->$recordと記述してしまうと、
    $recordという変数を探して、
    名無しの変数なんてねえよ。とわめいたり、
    素知らぬ顔で空データ返してくれるPHPを見てると
    ちょっと萌えるよね。
    こんな技法滅多に使わないけど。
    275 : nobodyさん - 2012/01/05(木) 16:19:40.25 ID:??? (+3,-30,-100)
    自分でフレームワークライクなもの書いたりする場合によく使うよ
    /hoge/fugaというアクセスはclass hogeのfugaメソッドを実行とかね
    どんな名前でアクセスしてくるかわからないものを一箇所で処理しようと思ったら便利でしょ
    276 : nobodyさん - 2012/01/05(木) 16:26:11.82 ID:??? (-4,-30,-88)
    つか、>>262のクラスひどくね?w

    >if ($limit) return array_slice($this->record, $offset, $limit);
    クエリ発行時点でoffsetとlimitつけとけよ…
    これごっそりレコード取って後から切り出してるだろ
    とりあえずこんなクソコード捨てちまえ
    277 : nobodyさん - 2012/01/05(木) 19:28:56.82 ID:??? (-12,-29,-30)
    >>267
    ファンションを呼び出すなら$this->record()って書くだろうよ
    279 : nobodyさん - 2012/01/05(木) 19:31:31.15 ID:??? (+56,+4,+0)
    プログラムミス
    280 : nobodyさん - 2012/01/05(木) 19:40:52.08 ID:??? (-20,-29,-47)
    >>278
    今どきただのmysql使うなんて時代後れすぎですね
    mysqliを積極的に使いなさい
    そして○○_query系でsqlを実行するのは今すぐやめましょう
    これからは○○_prepareを使いましょう
    queryでsql実行してたら業務でやってる人たちに笑われますよ
    281 : nobodyさん - 2012/01/05(木) 19:43:07.94 ID:??? (+34,-29,-62)
    とりあえずマニュアル嫁
    http://www.php.net/manual/ja/function.mysql-query.php

    mysql_query() は、 ひとつのクエリを送信します (複数クエリの送信はサポートしません)。
    282 : nobodyさん - 2012/01/05(木) 19:45:35.06 ID:??? (+64,+29,-19)
    >>279
    適当にいうな
    >>280
    ありがとうございます
    >>281
    クエリのパースってmysql側でやるものだと思ってたのですが
    そういうものなのですか
    ありがとうございました
    283 : nobodyさん - 2012/01/05(木) 19:46:47.22 ID:??? (+3,-30,-98)
    >>280の言うようにmysqliのほうが速いしなにかと捗るぞ
    mysqliのmulti_queryはマルチクエリ実行できるよ

    ただ得意気に
    >そして○○_query系でsqlを実行するのは今すぐやめましょう
    >これからは○○_prepareを使いましょう
    とか言ってると笑われるから注意な

    すべてケースによるから自分で最適なコーディングを探すこと
    エスケープやアプリに合わせたサニタイズも考えながらやって
    284 : nobodyさん - 2012/01/05(木) 19:47:41.25 ID:??? (+73,-29,-22)
    適当だったが、Sqlite3、PDOの関数では複数行の一括処理できるが。
    Sqlite2の古い関数使うからダメなんだ。
    285 : nobodyさん - 2012/01/05(木) 19:50:55.00 ID:??? (+60,+28,-4)
    >>284
    何言ってるのこのひと
    SQLite関係ないでしょ
    PDOの話もしてないし
    286 : nobodyさん - 2012/01/05(木) 19:53:46.88 ID:??? (+54,-7,-55)
    ○○_prepareはわずかに速くなるだろうが大差ない。
    ボトルネックでないだったら直に送信した方がソースは短くて済む。
    決定的な差になるのはトランザクション指定。
    287 : nobodyさん - 2012/01/05(木) 19:54:50.31 ID:??? (+57,+29,-7)
    ほんとだ。データベースは主にSqliteを使うからそれだけの様な気になってた。
    288 : nobodyさん - 2012/01/05(木) 19:55:28.06 ID:??? (-3,-29,-4)

    バカだwwwwwwwwwwww
    prepare使うのは速度のためじゃねえよwwwwwwwwwwwww
    289 : nobodyさん - 2012/01/05(木) 19:58:19.19 ID:??? (+114,+29,-101)
    だからケースによるだろう
    そもそもprepareは速く実行するためのものじゃねーし
    エスケープを機械的にほぼ保証してくれるから使えるところでは極力使うべき

    おまえ>>269,>>284だろ
    ずっと明後日の方向見ながらレスしてるぞ
    知ったかぶりにも程があるぞ
    291 : nobodyさん - 2012/01/05(木) 21:17:34.84 ID:??? (+130,+29,-101)
    >>290
    これ
    >バッファに取得しないで結果オブジェクトを返します。 エラー時には FALSE を返します。

    バッファに取得しないってことはなんらかの方法で現状をキープする必要があるでしょ
    テーブルロックしてるかどうかしらんけど、してる可能性は高いよ

    だからバッファリングしてから使うべき(このメソッドはあまり使うべきではない)ってことになるんじゃね
    292 : nobodyさん - 2012/01/05(木) 21:19:13.82 ID:??? (+27,-25,-2)
    PHPのお馴染み特定厨さん降臨キタ-ーーーーーーー!
    293 : nobodyさん - 2012/01/05(木) 21:29:46.87 ID:??? (+46,-30,-121)
    >>290
    ちなみに
    >二種類のモードのうちMYSQLI_USE_RESULT
    >というのが、従来のmysqによる結果セットと同じなのかなと思うのですが
    こういう変な固定概念的なものは取り払って素直にゼロから学習しなさいな
    じゃないと自分の思うようにいかないことばかりでイライラすることになるよ
    一応mysqliでSELECTを投げる場合の標準的な手順だけ
    1. プリペアドステートメントセット
    2. クエリ実行
    3. 結果オブジェクト取得
    4. オブジェクトから結果(レコード)取得
    概ねこんな感じ
    294 : nobodyさん - 2012/01/05(木) 21:32:31.52 ID:??? (+112,+29,-38)
    >>291
    データ取得している間中ロックするとか
    なんかありえない処理に思えるのですが・・・
    同時に一人しか同一テーブルを読めないってことでしょう
    いやありえない
    mysqliがおかしいのか
    今までも実はそうだったのか・・・
    295 : nobodyさん - 2012/01/05(木) 21:35:54.28 ID:??? (+75,+29,-48)
    >>294
    >>293読んでね
    で、他にメソッド色々あるでしょ?マニュアル熟読してみてよ
    しかも読めないとは書いてないじゃん、更新できないとは書いてあるけど
    イロイロと勝手にわかったフリするのは学習の妨げになるよ
    296 : nobodyさん - 2012/01/05(木) 21:43:24.56 ID:??? (+9,-30,-59)
    >>293
    プリペアドステートメントを使う以外は従来と同じですね
    あまり気にせず、
    データが巨大な場合はmysqli_store_result
    そうでない場合はmysqli_use_result
    を使っておけばいいのかなぁ
    297 : nobodyさん - 2012/01/05(木) 21:52:18.06 ID:??? (+114,+29,-160)
    >>291を理解できるまで何回か読んで考えてみたら
    バッファリングせずにデータを読みたい場合とバッファリングしてからデータを扱いたい場合で変わってくるでしょう
    前者はクエリを投げた時の状態を固定したままにしておきたいような場合に使えるでしょう
    後者は別にデータ取得直後に変更が加えられても問題ない場合に使える
    通常どちらを使えば良いかは考えなくてもわかるよね

    >データが巨大な場合はmysqli_store_result
    >そうでない場合はmysqli_use_result
    どうしてこういう考えに至ったのかオレにはわからんけど、マニュアルの読解力もしくは理解できるまで辛抱強く読む努力が必要だと思うよ
    なんとなくわかった気になるのが一番マズイ
    298 : nobodyさん - 2012/01/05(木) 22:42:32.96 ID:??? (+104,+29,-20)
    …prepareは本来パフォーマンスをあげるためのものだよ。
    何でもかんでも使えばいいってもんでもないけど。
    299 : nobodyさん - 2012/01/05(木) 22:48:03.29 ID:??? (+137,+29,-11)
    >>286>>298は同一じゃん
    おまえわかりやすくていいけどいい加減うぜーよ
    しかもおまえ上で暴れてたニートのおっさんじゃん
    300 : 298 - 2012/01/05(木) 22:51:18.40 ID:??? (+79,+29,-10)
    >>299
    証明ができなくてすまんが、おっさんにレスをしてた>>202とか>>232は俺ね。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について