LoginSignup
2
1

More than 5 years have passed since last update.

データベースクラスを作成するぞ - vol.1

Last updated at Posted at 2015-08-13

まえがき

スマホから投稿のテストも兼ねて
ちょっとした、空き時間を見つけては
追記していく用のデータベースクラスの作成。

なお、クラスやらOOPやらがてんでダメな奴が作成するので
見ても参考にはならないと思われる…ww

やりたいこと

例えば、

class DB {
    public function __construct() {
        // DB接続うんたらかんたら…
    }
    public function insert() {
        // insertうんたらかんたら…
    }
    public function update() {
        // updateうんたらかんたら…
    }
        
        
}

んな感じでクラスを作成しておき、
DB::insert() とか $this->_db->update() で
呼び出して使う…みたいなことがしたい、と。

で、なるべくの希望として
『クラスを使うときは"簡単"に使いたい!!』

というわけで、ボチボチ作ってみる。

データベースクラスの作成

DBクラス
class DB 
    private static _instance = null;
    Private _pdo;

    public function __construct() {

        // 便宜上の色々
        $dsn = "mysql:dbname=【データベース名】;host=【ホスト名】;charset=utf8";
        $user = "【ユーザー名】";
        $pass = "【パスワード】";

        try {
            $this->_pdo = new PDO($dsn, $user, $pass);
        } catch (PDOException $e) {
            die($e->getMessage());
        }
    }

    // *1
    public static function getInstance() {
        if(!isset(self::$_instance)) {
            self::$_instance = new DB();
        }
        return self::$_instance;
    }

    public function insert() {}

    public function update() {}

    public function delete() {}

プロパティ部分では、外部からアクセスできないように
"private"で指定する部分がほとんどだと思われる。(今後も

コンストラクタを"private"にすることで、インスタンス生成を
制限しておく。呼び出しは(*1)のメソッド getInstance()
通らなければ、インスタンスの生成はできない。

(こういう形が俗に言う"シングルトンパターン"??)

あとがき

なんとなーく…というか
ぼんやーり…というか
薄ーっすら…というか。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1