phpでmysqliクラスを使ってみた

同じ29番(笑) クラスも同じだったらミラクルなのにねwww ストラップはまだ持ってるんでせうか?
今日、お昼の放送で「好きだ。」流れた〜💞それだけでも嬉しいのにクラスのみんなが、歌ってくれた〜♪ しかも、隣のクラスにアサヒ推しのガオラーさん発見したー!顔はまだ分からないけどうちのバックにあっ!て言っててその後のバックにもストラップ付いてたー💞 しあわせー!
昨日5000円貰って、クラス全員(チョコ)と他5人分のストラップと7人分のペン買ったあたりもしかしたら買い物うまいかも。(上手くない)
鈴鹿「そのストラップいーじゃんいーじゃん!」 アタランテ「ああ。これは隣のクラスの藤丸から貰ってな。」 って弓道部の帰りに話してたら死ぬ
最近3日連続昼休み普通科でラップしてる笑 カロリー消費すげーやろーな。 でもメッチャ楽しい😊 その分5限目眠くなるから クラスの皆ごめんね
Cの配列をラップするrefクラス
顔、歌orラップ、ダンスのいずれかに秀でててほしいし、どれかがSクラスで他がA+〜Aくらいだと尚良い(もつエンタ基準)
javaで出てくるラッパークラス プリミティブ型をラップするクラス 整数なのに保存するインスタンス 格納するのは参照のアドレス Say HO! HO! HO! HO!
遊楽部特別 ブレイクマイハートが逃げ切った タイムは平凡だが序盤速くて最後も加速ラップでゴールするという珍しいラップになっていて強い内容 昇級しても楽しみ 【次走買い】 ・ブレイクマイハート ・フライングレディ(このクラスなら力上位) ・クリノサンスーシ(小回りコースなら安定)
次に、パフォーマンスしてる時の表情が好き。 笑顔がとても良い。2回目のクラス分けテストでナヤナを1日ずつビデオ撮って先生たちが見てたとき、先生たちが「この子だけが笑いながら踊ってる」と言ってたけど、ほんとその通りで。Super Hotのラップも表情もすごく爽快!!
同じクラスで、ラップすき これからもよろしくね〜笑
なるほど。俺が行ってた8流大学、全員にラップトップ貸してたからある程度のリテラシーはあったようなきがするけど、ほかは違うんか?確かに小中高とPCはゴミクラスだったけど。
いや〜、クラス紹介にラップ(風)はだめだね、なんにも伝わらないわwww
妹のクラスでラップ対決という最先端の遊びが流行っているらしい
クラスで 大誤算(あ、あいつアーニャとンミナミィのストラップつけてる!話しかけてみよ…) 大誤算「それアーニャとンミナミィやんな」 男子「うん ラブライカ好きやねん」 大誤算「ほーう」 男子「…」 大誤算「…」 会話とかむり!
同じクラスで、ラップすき これからもよろしくね〜笑

経緯

初投稿
先日php7を自鯖に導入したところ mysql_connect 等のmysql関数が使えなくなった(削除されたっぽい)ので
mysqliクラスをラップして、簡単なDB操作クラスを作成してみました:thinking:
github:https://github.com/YasuakiHirano/phptools/tree/master/mysqli

mysql操作クラス

mysqli.lib.
<?php
class DBMysqli {

    private $mysqli;
    private $debugflg = false;
    private $logtype = 0;

    public function __construct($host, $username, $password, $dbname) {
        $this->mysqli = new mysqli($host, $username, $password, $dbname);
        if($this->mysqli->connect_error) {
            error_log($this->mysqli->connect_error , $this->logtype);
            exit;
        }
    }

    public function select($table, $column = '*', $where = '', $option = MYSQLI_ASSOC) {
      $this->emptyValidate(array('table' => $table));

      $sql = 'SELECT ';

      if(is_array($column)) {
        foreach($column as $value) {
            $sql .= $value.',';
        }

        $sql = substr($sql, 0,  -1); 
        $sql .= " FROM {$table}";

      } else {
        $sql .= "{$column} FROM {$table}"; 
      }

      if(!empty($where)) {
        $sql .= " WHERE {$where}"; 
      }

      if($this->debugflg) {
        $log = "execute sql:".$sql;
        error_log($log, $this->logtype);
      }

      $res = $this->mysqli->query($sql);
      if(!$res) {
         echo 'select error:'.$this->mysqli->error;
        if($this->debugflg) error_log($this->mysqli->error, $this->logtype);
        exit;
      }  

      $rows = null;
      while($row = $res->fetch_array($option)){
        $rows[] = $row;
      }

      return $rows;
    }

    public function insert($table, $column, $values = ''){
      $this->emptyValidate(array('table' => $table, 'column' => $column));

      $sql = "INSERT INTO {$table} ";
      $column_str = '(';
      $values_str = '(';

      if(is_array($column)) {
        foreach($column as $key => $value) {
          $column_str .= $key.',';

          if(is_string($value)){
            $values_str .= "'{$value}',"; 
          } else {
            $values_str .= $value.','; 
          }
        }
        $column_str = substr($column_str, 0,  -1).')'; 
        $values_str = substr($values_str, 0,  -1).')'; 

        $sql .= $column_str;
        $sql .= ' VALUES '.$values_str;

      } else {
        $sql .= " ({$column}) VALUES ({$values})"; 
      }

      if($this->debugflg) {
        $log = "execute sql:".$sql;
        error_log($log, $this->logtype);
      }


      $res = $this->mysqli->query($sql);
      if(!$res) {
        echo 'insert error:'.$this->mysqli->error;
        if($this->debugflg) error_log($this->mysqli->error, $this->logtype);
        exit;
      }  
      return $res;
    }

    public function delete($table, $where = ''){
      $this->emptyValidate(array('table' => $table));
      $sql = "DELETE FROM {$table} ";

      if(!empty($where)) {
        $sql .= "WHERE {$where}";
      }

      if($this->debugflg) {
        $log = "execute sql:".$sql;
        error_log($log, $this->logtype);
      }

      $res = $this->mysqli->query($sql);
      if(!$res) {
        echo 'delete error:'.$this->mysqli->error;
        if($this->debugflg) error_log($this->mysqli->error, $this->logtype);
        exit;
      }  
    }

    public function update($table, $column, $where = ''){
      $this->emptyValidate(array('table' => $table, 'column' => $column));

      $sql = "UPDATE {$table} SET ";
      if(is_array($column)) {
        foreach($column as $key => $value) {
          if(is_string($value)) {
            $sql .= "{$key} = '{$value}',";
          } else {
            $sql .= "{$key} = {$value},";
          }
        }
        $sql = substr($sql, 0,  -1); 

      } else {
        $sql .= "{$column}"; 
      }     

      if(!empty($where)) {
        $sql .= " WHERE {$where}"; 
      }

      if($this->debugflg) {
        $log = "execute sql:".$sql;
        error_log($log, $this->logtype);
      }

      $res = $this->mysqli->query($sql);
      if(!$res) {
         echo 'update error:'.$this->mysqli->error;
        if($this->debugflg) error_log($this->mysqli->error, $this->logtype);
        exit;
      } 
    }

    public function tranInsert($table, $column, $values = ''){
        $this->mysqli->autocommit(FALSE);

        try {
            if(!$this->insert($table, $column, $values)){
                throw new Exception('tranInsert error');
            }
        } catch(Exception $e) {
            $this->mysqli->rollback();
        }

        if($this->mysqli->commit()) {
            if($this->debugflg) error_log('commit failed', $this->logtype);
            exit();
        }

        $this->mysqli->autocommit(TRUE);
    }

    public function queryExec($sql){
      $res = $this->mysqli->query($sql);
      if(!$res) {
         echo 'queryExec error:'.$this->mysqli->error;
        if($this->debugflg) error_log($this->mysqli->error, $this->logtype);
        exit;
      } 

      return $res;
    }

    public function emptyValidate($data, $outname = '') {
      $error_message = '';
      if(is_array($data)) {
        foreach($data as $key => $value) {
          if(empty($value)){
            $error_message .=  "please input {$key}.";
          }
        }
      } else {
          if(empty($data)){
             $error_message .= "please input {$outname}.";        
          }
      }

      if(!empty($error_message)){
        echo $error_message;
        exit;
      }
    }

}

テスト用PHP

testmysqli.php
<?php
    require_once 'mysqli.lib.php';

    $password = 'pasword';
    $dbname = 'dbname';
    $user = 'root';
    $host = 'localhost';

    $mysqli = new DBMysqli($host, $user, $password, $dbname);

    // ## exec query
    $mysqli->queryExec("drop table hoge"); 
    $mysqli->queryExec("create table hoge(id int, name text, date_enterd datetime)"); 

    // ## insert test
    for($i = 0; $i < 10; $i++) {
        $insert_data = array(
               'id' => $i, 
               'name' => 'hoge'.$i,
               'date_enterd' => date('Ymd')
             );
        $mysqli->insert('hoge', $insert_data);
    }

    // ## select test
    // 1. table name only 
    $row = $mysqli->select('hoge');
    print_r($row);

    // 2. table and column name
    $row = $mysqli->select('hoge', array('id', 'name'));
    print_r($row);

    // 3. where
    $row = $mysqli->select('hoge', array('id', 'name'), "id in (1,2,3)");
    print_r($row);


    // ## delete test
    $mysqli->delete('hoge', "id in (0,1,2,3,4,5,6,7)");
    $row = $mysqli->select('hoge');
    print_r($row);

    // ## update test
    $mysqli->update('hoge', array('name' => 'update!!!', 'id' => '999'),"id in (8, 9)");
    $row = $mysqli->select('hoge');
    print_r($row);

雑ですが、ぱぱっと作った割にはいい感じかなと。。

[紹介元] PHPタグが付けられた新着投稿 – Qiita phpでmysqliクラスを使ってみた

  • コメント

    1. 匿名希望
      2017/06/23(金) 23:54:30

      今日、お昼の放送で「好きだ。」流れた〜💞それだけでも嬉しいのにクラスのみんなが、歌ってくれた〜♪

      しかも、隣のクラスにアサヒ推しのガオラーさん発見したー!顔はまだ分からないけどうちのバックにあっ!て言っててその後のバックにもストラップ付いてたー💞

      しあわせー!

    2. 匿名希望
      2017/06/23(金) 23:54:30

      昨日5000円貰って、クラス全員(チョコ)と他5人分のストラップと7人分のペン買ったあたりもしかしたら買い物うまいかも。(上手くない)

    3. 匿名希望
      2017/06/23(金) 23:54:30

      鈴鹿「そのストラップいーじゃんいーじゃん!」
      アタランテ「ああ。これは隣のクラスの藤丸から貰ってな。」
      って弓道部の帰りに話してたら死ぬ

    4. 匿名希望
      2017/06/23(金) 23:54:30

      最近3日連続昼休み普通科でラップしてる笑
      カロリー消費すげーやろーな。
      でもメッチャ楽しい😊

      その分5限目眠くなるから
      クラスの皆ごめんね

    5. 匿名希望
      2017/06/23(金) 23:54:30

      Cの配列をラップするrefクラス

    記事に戻る

関連記事