Code Coverage  | 
      ||||||||||
Classes and Traits  | 
       Functions and Methods  | 
       Lines  | 
      ||||||||
| Total |         | 
       0.00%  | 
       0 / 1  | 
               | 
       0.00%  | 
       0 / 11  | 
       CRAP |         | 
       0.00%  | 
       0 / 46  | 
      
| Dbal |         | 
       0.00%  | 
       0 / 1  | 
               | 
       0.00%  | 
       0 / 11  | 
       272.00 |         | 
       0.00%  | 
       0 / 46  | 
      
| __construct |         | 
       0.00%  | 
       0 / 1  | 
       2.00 |         | 
       0.00%  | 
       0 / 2  | 
      |||
| getPdo |         | 
       0.00%  | 
       0 / 1  | 
       2.00 |         | 
       0.00%  | 
       0 / 2  | 
      |||
| query |         | 
       0.00%  | 
       0 / 1  | 
       2.00 |         | 
       0.00%  | 
       0 / 4  | 
      |||
| queryOne |         | 
       0.00%  | 
       0 / 1  | 
       6.00 |         | 
       0.00%  | 
       0 / 8  | 
      |||
| queryAsStmt |         | 
       0.00%  | 
       0 / 1  | 
       2.00 |         | 
       0.00%  | 
       0 / 4  | 
      |||
| execute |         | 
       0.00%  | 
       0 / 1  | 
       2.00 |         | 
       0.00%  | 
       0 / 4  | 
      |||
| prepare |         | 
       0.00%  | 
       0 / 1  | 
       30.00 |         | 
       0.00%  | 
       0 / 14  | 
      |||
| begin |         | 
       0.00%  | 
       0 / 1  | 
       2.00 |         | 
       0.00%  | 
       0 / 2  | 
      |||
| rollback |         | 
       0.00%  | 
       0 / 1  | 
       2.00 |         | 
       0.00%  | 
       0 / 2  | 
      |||
| commit |         | 
       0.00%  | 
       0 / 1  | 
       2.00 |         | 
       0.00%  | 
       0 / 2  | 
      |||
| close |         | 
       0.00%  | 
       0 / 1  | 
       2.00 |         | 
       0.00%  | 
       0 / 2  | 
      |||
| <?php | |
| namespace Puyo\Db; | |
| /** | |
| * PDO をさらに抽象化したもの | |
| * @uses ext-pdo | |
| */ | |
| class Dbal | |
| { | |
| /** @var \PDO */ | |
| protected $pdo; | |
| public function __construct(\PDO $pdo) { | |
| $this->pdo = $pdo; | |
| } | |
| public function getPdo() { | |
| return $this->pdo; | |
| } | |
| /** | |
| * @param string $sql | |
| * @param string[]|int[] $values | |
| * @return array 複数行 | |
| */ | |
| public function query($sql, $values=[]) { | |
| $stmt = $this->prepare($sql, $values); | |
| $stmt->execute(); | |
| return $stmt->fetchAll(\PDO::FETCH_ASSOC); | |
| } | |
| /** | |
| * @param string $sql | |
| * @param string[]|int[] $values | |
| * @return array|null 単一行 | |
| */ | |
| public function queryOne($sql, $values=[]) { | |
| $stmt = $this->prepare($sql, $values); | |
| $stmt->execute(); | |
| $firstRow = $stmt->fetch(\PDO::FETCH_ASSOC); | |
| if($firstRow === false) { | |
| return null; | |
| } | |
| return $firstRow; | |
| } | |
| /** | |
| * @param string $sql | |
| * @param string[]|int[] $values | |
| * @return \PDOStatement | |
| */ | |
| public function queryAsStmt($sql, $values=[]) { | |
| $stmt = $this->prepare($sql, $values); | |
| $stmt->execute(); | |
| return $stmt; | |
| } | |
| /** | |
| * @param string $sql | |
| * @param string[]|int[] $values | |
| * @return int 更新件数 | |
| */ | |
| public function execute($sql, $values=[]) { | |
| $stmt = $this->prepare($sql, $values); | |
| $stmt->execute(); | |
| return $stmt->rowCount(); | |
| } | |
| /** | |
| * @param string $sql | |
| * @param string[]|int[] $values | |
| * @return \PDOStatement | |
| */ | |
| protected function prepare($sql, $values=[]) { | |
| $stmt = $this->pdo->prepare($sql); | |
| foreach($values as $name=>$val) { | |
| if(is_int($val)) { | |
| $stmt->bindValue($name, $val, \PDO::PARAM_INT); | |
| } elseif(is_bool($val)) { | |
| $stmt->bindValue($name, $val, \PDO::PARAM_BOOL); | |
| } elseif(is_null($val)) { | |
| $stmt->bindValue($name, $val, \PDO::PARAM_NULL); | |
| } else { | |
| $stmt->bindValue($name, $val, \PDO::PARAM_STR); | |
| } | |
| } | |
| return $stmt; | |
| } | |
| public function begin() { | |
| return $this->pdo->beginTransaction(); | |
| } | |
| public function rollback() { | |
| return $this->pdo->rollBack(); | |
| } | |
| public function commit() { | |
| return $this->pdo->commit(); | |
| } | |
| public function close() { | |
| $this->pdo = null; | |
| } | |
| } |