Ubuntu 16.04でのPHP5<->7切り替え

中学の頃にクラスのオタクに「ラップを聞け!ヒップホップ最高!!」って半ば強制的に聞かせたてたの、今思えばパワハラだな……。その時に社会人で捕まらずに済んで本当によかった
クラスのみんなにウィークエンダー歌ってくれたけど、みんなラップ歌えなくて結果自分で歌ってしまうというねw あ、始まったよって感じの空気やばかった
あのストラップはさ 黒沼がクリスマス会に行けなくなったって聞いた日に買いに行ったんだ 黒沼が寂しそーにしてんの わかったのに何もできなくて …せめてプレゼントしたくて クラスの交換用じゃない 黒沼用のプレゼント
この中でクラス別筑波20ラップ耐久やったら面白そう
数年前、ご飯を電子レンジであっためたらラップの膨らみはどうなるでしょう?っていう教育実習生の質問にクラスの人が膨らむorしぼむの二択でしぼむって答えてて教育実習生が困った顔して否定してたんだけど、あの時「いやしぼむのであってるよ」ともしも言ってたらってのを何年経ってもたまに考える
8mileのパパドックとエミネムのラップを流して筋トレしてる俺は変態クラス。
斜め前に居るクラスの人のバックについてるカバンちゃんのストラップとめっちゃ目が会うw
家庭科のさ、プリントにさ、覚えやすいようにってさ、ラップ口調でさ、テストにでるポイントをさ、書いてたらさ、先生に拾われてさ、 「このラップ口調で書いてる人だれwww」 ってクラス全員の前でさ、言われてさ、ほんとにもう泣きたいYo
ウィウンがタメなら惚れてたな… あの子が同じクラスいたら好きになってた← かわいい顔しといてラップやるのギャップ萌以外なにもない💗💗💗
今日同じクラスの子が嵐のストラップ付けとってその子の隣の子が「嵐好きなん?」って聞いたらその子が「昔な!翔くん好きやったけど最近太っとるから...好きじゃないんさな」って言うてて聞いとってなんかショックやった...そんな理由で嵐好きじゃなくなるんかって...
ただクラスの人に聞いてー!って勧めた時に「ラップがすごかった」って定型文を返してくれて、「あ、これちゃんと聞かずにコメント欄から拾ったなw」って思いましたよ(笑)
ロードラップ?なんかとMVの印象だと彼らは車ではなくチャリに乗り、なのにたまにその高そうなアイテムの資金源はどこ?みたいなものが出てくる。skinsの子達も免許取得率低かったよね。あの子達は多分アンダークラスじゃないけど。
OMAENO☆POKOCHIN☆KOYUBI☆ って他クラスの男子にラップ口調って教室で叫ばれたせいで教室が凍えた今日のはなし
せめてうちのクラスだけでもいいから男子は櫻井孝宏の声になってくれ ラップしても罵詈雑言でもなんでもしていいからせめて
クラスにくそうぜえ女子がいるんだけどさ、今日マネージャーさんが頑張って作ってくれたストラップをダセェとかバカにしてたらしいんやけどほんとにクソみたいな人間だと思った とりあえずイライラするわ
・・・ありがとう すげーーうれしい  ・・・あのストラップはさ 黒沼がクリスマス会に行けなくなったって聞いた日に買いに行ったんだ 黒沼が寂しそーにしてんのわかったのに何も出来なくて ・・・せめてプレゼントしたくて クラスの交換用じゃない 黒沼用のプレゼント (君に届け11巻より)
つべに上がってる晋平太VSパブロのコメント欄、すげえオタクくせえな。クラスに10人はいた陰キャがラップ知ってイキがっちゃってるパターンかよ

経緯

初投稿
先日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 Ubuntu 16.04でのPHP57切り替え

  • コメント

    1. 匿名希望
      2017/06/27(火) 08:54:55

      この中でクラス別筑波20ラップ耐久やったら面白そう

    2. 匿名希望
      2017/06/27(火) 08:54:55

      数年前、ご飯を電子レンジであっためたらラップの膨らみはどうなるでしょう?っていう教育実習生の質問にクラスの人が膨らむorしぼむの二択でしぼむって答えてて教育実習生が困った顔して否定してたんだけど、あの時「いやしぼむのであってるよ」ともしも言ってたらってのを何年経ってもたまに考える

    3. 匿名希望
      2017/06/27(火) 08:54:55

      あのストラップはさ
      黒沼がクリスマス会に行けなくなったって聞いた日に買いに行ったんだ
      黒沼が寂しそーにしてんの わかったのに何もできなくて
      …せめてプレゼントしたくて
      クラスの交換用じゃない 黒沼用のプレゼント

    4. 匿名希望
      2017/06/27(火) 08:54:55

      クラスのみんなにウィークエンダー歌ってくれたけど、みんなラップ歌えなくて結果自分で歌ってしまうというねw

      あ、始まったよって感じの空気やばかった

    5. 匿名希望
      2017/06/27(火) 08:54:55

      中学の頃にクラスのオタクに「ラップを聞け!ヒップホップ最高!!」って半ば強制的に聞かせたてたの、今思えばパワハラだな……。その時に社会人で捕まらずに済んで本当によかった

    記事に戻る

関連記事