app-async.php 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. // Future app to use Mysql async pool
  3. require_once "/ngx_php7/t/lib/mysql.php";
  4. define("DB_HOST", gethostbyname("tfb-database"));
  5. define("DB_PORT", "3306");
  6. define("DB_USER", "benchmarkdbuser");
  7. define("DB_PASS", "benchmarkdbpass");
  8. define("DB_NAME", "hello_world");
  9. function fortune()
  10. {
  11. $my = new php\ngx\mysql();
  12. yield from $my->connect(DB_HOST, DB_PORT, DB_USER, DB_PASS, DB_NAME);
  13. $ret = yield from $my->query("SELECT id, message FROM Fortune");
  14. $arr = [];
  15. foreach ($ret as $row) {
  16. $arr[$row["id"]] = $row["message"];
  17. }
  18. $arr[0] = "Additional fortune added at request time.";
  19. asort($arr);
  20. $html = "";
  21. foreach ($arr as $id => $message) {
  22. $message = htmlspecialchars($message, ENT_QUOTES, "UTF-8");
  23. $html .= "<tr><td>$id</td><td>$message</td></tr>";
  24. }
  25. echo "<!DOCTYPE html><html><head><title>Fortunes</title></head><body><table><tr><th>id</th><th>message</th></tr>",
  26. $html,
  27. "</table></body></html>";
  28. yield from $my->close();
  29. }