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