db.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. function connect() {
  3. $link = @mysqli_connect('127.0.0.1:2483', 'root', 'root', 'world');
  4. if ($error = mysqli_connect_errno()) {
  5. trigger_error(sprintf("DB > Error de conexión: #%s - %s\n", $error, mysqli_connect_error()), E_USER_ERROR);
  6. return null;
  7. }
  8. mysqli_set_charset($link, 'utf8');
  9. return $link;
  10. }
  11. function get_cities_details_traditional_style($link) {
  12. $query = <<<SQL
  13. SELECT
  14. c.Name as CityName, c.District, c.Population,
  15. ct.Name as CountryName, ct.Continent, ct.Region
  16. FROM
  17. city c
  18. INNER JOIN country ct ON c.CountryCode = ct.Code
  19. LIMIT 10
  20. SQL;
  21. $rows = [];
  22. if ($result = mysqli_query($link, $query)) {
  23. $count = mysqli_num_rows($result);
  24. /**
  25. * Obtener filas en un arreglo asociativo
  26. */
  27. $i = 0;
  28. while ($row = mysqli_fetch_assoc($result)) {
  29. dump_to_console(sprintf('BD > Obteniendo detalles de la fila: %u from %u', ++$i, $count));
  30. $rows[] = $row;
  31. }
  32. /**
  33. * Libera la memoria de los resultados asociados con la sentencia
  34. */
  35. mysqli_free_result($result);
  36. } elseif ($error = mysqli_error($link)) {
  37. trigger_error(sprintf("Error de SQL: #%s - %s\n", $error, mysqli_error($link)), E_USER_ERROR);
  38. }
  39. return $rows;
  40. }
  41. function get_cities_details_using_generator($link) {
  42. $query = <<<SQL
  43. SELECT
  44. c.Name as CityName, c.District, c.Population,
  45. ct.Name as CountryName, ct.Continent, ct.Region
  46. FROM
  47. city c
  48. INNER JOIN country ct ON c.CountryCode = ct.Code
  49. LIMIT 10
  50. SQL;
  51. if ($result = mysqli_query($link, $query)) {
  52. $count = mysqli_num_rows($result);
  53. /**
  54. * Obtener filas en un arreglo asociativo
  55. */
  56. $i = 0;
  57. while ($row = mysqli_fetch_assoc($result)) {
  58. dump_to_console(sprintf('BD > Obteniendo detalles de la fila: %u de %u', ++$i, $count));
  59. yield $row;
  60. }
  61. /**
  62. * Libera la memoria de los resultados asociados con la sentencia
  63. */
  64. mysqli_free_result($result);
  65. } elseif ($error = mysqli_error($link)) {
  66. trigger_error(sprintf("Error de SQL: #%s - %s\n", $error, mysqli_error($link)), E_USER_NOTICE);
  67. }
  68. }
  69. /**
  70. * Cierro la conexión
  71. */
  72. function close_connection($link) {
  73. mysqli_close($link);
  74. }
  75. /*
  76. * Muestra un mensaje en la consola del Browser: Chromium o FF
  77. */
  78. function dump_to_console($message) {
  79. echo "<script>console.log('$message');</script>";
  80. }