haiju's 開発メモ

開発に必要な情報を自分用にメモ

PDOを継承したMySQL接続クラスのサンプルを元に、PDOの基本的な使い方

今ここに、PDOを継承したMySQL接続クラスのサンプルを元に、PDO

の基本的な使い方をまとめてみたのでメモしておく(Φω|

[MySQL接続クラスサンプル]

class TestDbConnection() extends PDO

{

     const DSN = "mysql:host='xxx.xxx.xxx.xxx;dbname=mydb;charset=utf8";

     const USER = 'test-user';

     const PASSWORD = 'test-user2020';

     public function __construct()

    {

           parent::__construct(self::DSN,self::USER,self::PASSWORD);

           $this->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    }

}

(ex)データ抽出

$query = "SELECT * FROM User";

try {

     $dbh = new TestDbConnection();

     $stmt = $dbh->prepare($query);

     $stmt->execute();

     // 取得した内容を表示

    while( $row = $stmt->fetch(PDO::FETCH_ASSOC) ){

         // 実行結果から1レコード取ってくる
        $id = $row['id'];
        $lv = $row['lv'];
        $exp = $row['exp'];
        $money = $row['money'];

        // 表示する
        printf("%d, %d, %d, %d\n", $id, $lv, $exp, $money);
     }

} catch (PDOException $e) {

     printf("[Error] %s¥n", $e->getMessage());

}

(ex)データ挿入/insert :: 疑問符プレースホルダ

$query = 'INSERT INTO User(lv, exp, money) VALUES(:lv,:exp,:money)';

try {
      $dbh = new TestDbConnection();
      $stmt = $dbh->prepare($query);
      // プレースホルダに値を入れる
      $stmt->bindValue(':lv', $lv, PDO::PARAM_INT);
      $stmt->bindValue(':exp', $exp, PDO::PARAM_INT);
      $stmt->bindValue(':money', $money, PDO::PARAM_INT);

      // 実行
      $stmt->execute();
} catch( PDOException $e ) {
      printf("[Error] %s¥n", $e->getMessage());
}

(ex)データ更新/update :: 疑問符プレースホルダ

$query = 'UPDATE User SET money=money-:price WHERE id=:userid';

try {

     $dbh = new TestDbConnection();

     $stmt = $dbh->prepare($query);

     $stmt->bindValue(':price', GACHA_PRICE, PDO::PARAM_INT);

     $stmt->bindValue(':userid', $uid, PDO::PARAM_INT);

     $stmt->execute();

} catch( PDOException $e ) {
      printf("[Error] %s¥n", $e->getMessage());
}

[参考サイト]

www.php.net

blog.katsubemakito.net

blog.katsubemakito.net

blog.katsubemakito.net

slash-mochi.net

bituse.info

www.toumasu-program.net

qiita.com