WorldModel.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php declare(strict_types=1);
  2. /**
  3. * DuckPhp
  4. * From this time, you never be alone~
  5. */
  6. namespace DuckPhpBenchmark\Model;
  7. use DuckPhpBenchmark\System\BaseModel;
  8. use DuckPhpBenchmark\System\Helper\ModelHelper as M;
  9. class WorldModel extends BaseModel
  10. {
  11. public function getRandomRow()
  12. {
  13. $sql = 'SELECT id,randomNumber FROM world WHERE id = '. mt_rand(1, 10000);
  14. $ret = M::DB()->fetch($sql);
  15. return $ret;
  16. }
  17. public function multiQuery($query_count)
  18. {
  19. $arr=[];
  20. while ($query_count--) {
  21. $sql = 'SELECT id,randomNumber FROM world WHERE id = ?';
  22. $data = M::DB()->fetch($sql,mt_rand(1, 10000));
  23. $arr[] = $data;
  24. }
  25. return $arr;
  26. }
  27. public function multiUpdate($query_count)
  28. {
  29. // port from php
  30. // For each query, store the result set values in the response array
  31. $arr=[];
  32. while ($query_count--) {
  33. $id = mt_rand(1, 10000);
  34. $sql = 'SELECT randomNumber, id FROM world WHERE id=?';
  35. $row = M::DB()->fetch($sql,$id);
  36. if (empty($row)) {
  37. continue;
  38. }
  39. $randomNumber = $row['randomNumber'];
  40. // Store result in array.
  41. $world = ['id' => $id, 'randomNumber' => $randomNumber];
  42. $world['randomNumber'] = mt_rand(1, 10000);
  43. $sql = 'UPDATE world SET randomNumber=? WHERE id=?';
  44. M::DB()->execute($sql, $world['randomNumber'], $id);
  45. $arr[] = $world;
  46. }
  47. return $arr;
  48. }
  49. }