fork download
  1. <?php
  2. Namespace Database;
  3.  
  4. class TableDataGateway
  5. {
  6. private $pdo;
  7.  
  8. public function __construct($pdo)
  9. {
  10. $this->pdo = $pdo;
  11. }
  12.  
  13. public function getBalance($assetid = false)
  14. {
  15. if (!empty($assetid) && gettype($assetid)!=='integer') {
  16. throw new \Exception('Invalid id in request for balance');
  17. }
  18.  
  19. $query = "
  20. SELECT * FROM `assets`" . (($assetid) ? " WHERE `assetid` = '$assetid'" : "") . " GROUP BY `assetid`
  21. ";
  22.  
  23. $assetBalance = $this->pdo->query($query)->fetchAll(\PDO::FETCH_KEY_PAIR);
  24.  
  25. if (empty($assetBalance) && !empty($assetid)) {
  26. throw new \Exception('No values for requested asset');
  27. }
  28. if (empty($assetBalance)) {
  29. throw new \Exception('No assets in database');
  30. }
  31.  
  32. return $assetBalance;
  33. }
  34.  
  35. }
  36.  
  37. # $tdg = new Database\TableDataGateway($pdo);
  38. #
  39. # 1) $tdg->getBalance(); / $tdg->getBalance(0); / $tdg->getBalance(NULL); --> возвращает массив ['assetid'=>количество, ...]
  40. # 2) $tdg->getBalance(666); --> возвращает массив ['666'=>количество]
  41. # 3) $tdg->getBalance(-1); --> выбрасывает исключение
  42. # 4) $tdg->getBalance('я строка'); --> выбрасывает исключение
  43. # 5) $tdg->getBalance(); --> если в базе 0 записей, выбрасывает исключение
Success #stdin #stdout 0s 52488KB
stdin
Standard input is empty
stdout
Standard output is empty