DbModel.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. declare(strict_types=1);
  3. /**
  4. * This file is part of Simps.
  5. *
  6. * @link https://simps.io
  7. * @document https://doc.simps.io
  8. * @license https://github.com/simple-swoole/simps/blob/master/LICENSE
  9. */
  10. namespace App\Model;
  11. use Simps\DB\DB;
  12. class DbModel extends DB
  13. {
  14. public function fortunes()
  15. {
  16. $fortune = [];
  17. $arr = $this->query('SELECT id, message FROM Fortune');
  18. foreach ($arr as $row) {
  19. $fortune[$row['id']] = $row['message'];
  20. }
  21. $fortune[0] = 'Additional fortune added at request time.';
  22. \asort($fortune);
  23. return $fortune;
  24. }
  25. public function updates(int $queries = 0)
  26. {
  27. $query_count = 1;
  28. if ($queries > 1) {
  29. $query_count = $queries > 500 ? 500 : $queries;
  30. }
  31. $arr = [];
  32. while ($query_count--) {
  33. $id = mt_rand(1, 10000);
  34. $randomNumber = mt_rand(1, 10000);
  35. $ret = $this->query('SELECT id, randomNumber FROM World WHERE id = ?', [$id]);
  36. // Store result in array.
  37. $world = ['id' => $id, 'randomNumber' => $ret[0]['randomNumber']];
  38. $world['randomNumber'] = $randomNumber;
  39. $this->execute('UPDATE World SET randomNumber = ? WHERE id = ?', [$randomNumber, $id]);
  40. $arr[] = $world;
  41. }
  42. return \json_encode($arr, JSON_NUMERIC_CHECK);
  43. }
  44. public function db(int $queries = 0)
  45. {
  46. // Read number of queries to run from URL parameter
  47. $query_count = 1;
  48. if ($queries > 1) {
  49. $query_count = $queries > 500 ? 500 : $queries;
  50. }
  51. // Create an array with the response string.
  52. $arr = [];
  53. // For each query, store the result set values in the response array
  54. while ($query_count--) {
  55. $id = mt_rand(1, 10000);
  56. $data = $this->query('SELECT id, randomNumber FROM World WHERE id = ?', [$id]);
  57. // Store result in array.
  58. $arr[] = ['id' => $id, 'randomNumber' => $data[0]['randomNumber']];
  59. }
  60. // Use the PHP standard JSON encoder.
  61. // http://www.php.net/manual/en/function.json-encode.php
  62. if ($queries === -1) {
  63. $arr = $arr[0];
  64. }
  65. return \json_encode($arr, JSON_NUMERIC_CHECK);
  66. }
  67. }