db-mysqli.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. //$db = new mysqli('p:tfb-database', 'benchmarkdbuser', 'benchmarkdbpass', 'hello_world');
  3. function db()
  4. {
  5. global $db;
  6. $statement = $db->prepare('SELECT id,randomNumber FROM World WHERE id=?');
  7. $statement->bind_param('i', $id);
  8. if ( ! isset($_GET['queries'])) {
  9. $id = mt_rand(1, 10000);
  10. $statement->execute();
  11. return json_encode($statement->get_result()->fetch_assoc(), JSON_NUMERIC_CHECK);
  12. }
  13. $query_count = 1;
  14. if ($_GET['queries'] > 1) {
  15. $query_count = min($_GET['queries'], 500);
  16. }
  17. while ($query_count--) {
  18. $id = mt_rand(1, 10000);
  19. $statement->execute();
  20. $arr[] = $statement->get_result()->fetch_assoc();
  21. }
  22. return json_encode($arr, JSON_NUMERIC_CHECK);
  23. }
  24. function fortune()
  25. {
  26. global $db;
  27. $arr = $db->query('SELECT id,message FROM Fortune')->fetch_all(MYSQLI_NUM);
  28. $arr[] = [0 => 0, 1 => 'Additional fortune added at request time.'];
  29. usort($arr, function($a, $b){return strcmp($a[1], $b[1]);});
  30. $html = '';
  31. foreach ($arr as $item) {
  32. $message = htmlspecialchars($item[1], ENT_QUOTES, 'UTF-8');
  33. $html .= "<tr><td>$item[0]</td><td>$message</td></tr>";
  34. }
  35. return '<!DOCTYPE html><html><head><title>Fortunes</title></head><body><table><tr><th>id</th><th>message</th></tr>'
  36. .$html.
  37. '</table></body></html>';
  38. }
  39. function update()
  40. {
  41. global $db;
  42. $query_count = 1;
  43. if ($_GET['queries'] > 1) {
  44. $query_count = min($_GET['queries'], 500);
  45. }
  46. $statement = $db->prepare('SELECT randomNumber FROM World WHERE id=?');
  47. $updateStatement = $db->prepare('UPDATE World SET randomNumber=? WHERE id=?');
  48. $statement->bind_param('i', $id);
  49. $updateStatement->bind_param('ii',$update, $id);
  50. while ($query_count--) {
  51. $id = mt_rand(1, 10000);
  52. $statement->execute();
  53. $world = ['id' => $id, 'randomNumber' => $statement->get_result()->fetch_row()];
  54. $update = mt_rand(1, 10000);
  55. $updateStatement->execute();
  56. $arr[] = ['id' => $id, 'randomNumber' => $update];
  57. }
  58. return json_encode($arr, JSON_NUMERIC_CHECK);
  59. }