Neo Inspiration

  • Search

    • About Me

      • inspi 改め
        jakk@webアーキテクト(自称)
        php,javascript,seoなど
        得意技は extract();

  • カテゴリー

  • Ranking

  • Archive for the ‘Database’ Category

    MySQL server has gone awayで吹いた

    火曜日, 5 月 27th, 2008

    出社してサイトチェックしようとしたら繋がらない。

    ちょうどタイミングよくメールでDBのパス(同じサーバの別DB)
    を変更したとか言うアナウンスがきたので
    それ関係するのかなと調査開始。

    原因がまずわからん

    パスはどうも大丈夫なよう(当たり前だけど)

    で 繋がらないのはなぜか。。DNS?
    いやでもDB接続しないただのテキストファイルとか開けるし。。
    と 30分くらいうだうだ悩みつつF5押しまくってたら
    突然繋がった。

    が。。

    真っ白。

    管理画面にアクセスしてみると
    「MySQL server has gone away」
    の文字が。

    どっかいったってどういうことだwwwwwwwww

    DBを直すか。。

    とりあえずgoogle先生に聞こうってことで
    聞いてみると どうやらDBがぶっ壊れてるかアクセス過多か
    クエリーがでかすぎだと出るらしい。

    ・アクセス過多はない(ローンチして1週間くらいのサイトだし)
    ・クエリーも最適化はある程度してある(と信じたい)
    ・まさかぶっ壊れた??

    ってことで直でDBにつないで SELECTしてみる。
    ⇒普通にOK

    CHECK TABLE ぽぃ。
    ⇒「Table is already up to date」しかでない。
    #「Table is Table is marked as crashed」って出れば話ははやかったのに。
    #SELECTもUPDATEもできるのに Table is marked as crashed なんてでないか。。

    だがサイトにアクセスしてみるとやっぱDbに繋がらない。

    ええいめんどくせー ってことで repair table 発動。



    直った。

    結局

    「Table is marked as crashed」
    以外でもぶっ壊れてるってことがあるんですね。

    CakePHPのモデルがエンティティとして扱える!

    火曜日, 1 月 8th, 2008

    あけましておめでとうございます(遅

    すでにCakeを使った開発第2弾も佳境なんですが、
    ここにきてやりたかったことが書いてあって
    動揺していたりw

    実装したいけど、もう時間がない!

    CakePHPのモデルをエンティティとして扱う

    http://wiki.cre8system.jp/index.php?PHP%2FCakePHP%2FCakePHP%A4%CE%A5%E2%A5%C7%A5%EB%A4%F2%A5%A8%A5%F3%A5%C6%A5%A3%A5%C6%A5%A3%A4%C8%A4%B7%A4%C6%B0%B7%A4%A6

    あちこちで言われていますが、Cakeのモデルはエンティティともなんともいえない微妙な状態(エンティティではないけど)なので
    $this->idは使えても $this->postname みたいなことはできない みたいな。

    それを可能にしてくれるってことです。

    Cake(というかPHPが?)元々ハッシュ地獄に近いソースになりがちなので、
    こういう書き方ができるようになると
    Cakeを使う利点が増えるようなきがするなー
    しないかも。

    次のプロジェクトのときは実装してみよう。

    の前に検証だw

    CakePHP hasAndBelongsToMany でページング(SQL LIMIT)とかを設定する

    火曜日, 12 月 4th, 2007

    ひさびさCake触ると いろいろ新しい発見があるものです。。

    Cakeでは仕様上

    hasOne > LEFT JOIN
    belongsTo > LEFT JOIN
    hasMany > IDを元に該当テーブルをSelect
    hasAndBelongsToMany > IDを元に接続テーブルをSelect

    という形なので
    Modelのアソシエーション単位で、条件の書き方が変わってくるので
    そのメモです。

    (more…)

    2008/07/05 03:31:48