Guest User

Untitled

a guest
Oct 18th, 2017
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.21 KB | None | 0 0
  1. <?php
  2. require_once('zeusafk.database.lib.php');
  3.  
  4. $host = 'localhost';
  5. $user = 'root';
  6. $password = 'root';
  7. $database = 'test_db';
  8. // El puerto es opcional, por defecto 3306
  9. $port = 3306;
  10.  
  11. // Podemos obtener una instancia compartida de la clase Database sin tener que inicializarla
  12. $zdb = ZeusAFK\Database::GetInstance();
  13.  
  14. // O podemos crear una nueva instancia, lo cual es util si vamos a trabajar con distintas bases de datos
  15. $zdb = new ZeusAFK\Database();
  16.  
  17. // Creamos la conexion a mysql a utilizarse
  18. $zdb->CreateConnection($host, $user, $password, $database, $port);
  19.  
  20. // Podemos verificar si tenemos problemas de conexion u otro tipo
  21. if(!$zdb->Success()){
  22. die($zdb->GetError());
  23. }
  24.  
  25. // La funcion principal es Query, esta funcion cuenta con varios parametros opcionales que permiten modificar su funcionalidad para cumplir el objetivo que necesitemos
  26.  
  27. /*
  28. Funcion: Query
  29. Parametros:
  30. query [String] [Requerido]: Consulta a ejecutar
  31. Ejemplo: SELECT * FROM mdl_user WHERE id = ? OR firstname LIKE CONCAT('%',?,'%') LIMIT 1
  32.  
  33. types [String] [opcional]: Tipos de datos para parametros en la consulta
  34. Ejemplo: 'is' // (In]t, String)
  35. Advertencia: La cantidad de parametros en la consulta (?) debe coincidir con los enviados en este parametro
  36.  
  37. params [Array|Var] [opcional]: Parametros en la consulta
  38. Ejemplo: array($id, $firstname) | o simplemente una variable si es solo un parametro
  39. Advertencia: La cantidad de parametros (?) en la consulta y los enviados en este parametro deben coincidir
  40.  
  41. results [Array] [opcional]: Nombres asignados a los resultados devueltos por la consulta, si no se especifica se utiliza los mismos devueltos por la consulta
  42. Ejemplo: array('id_abc', 'firstname_abc', 'lastname_abc', 'idnumber_abc', 'email_abc' .... etc)
  43. Advertencia: La cantidad de columnas devueltas por la consulta y los enviados en este parametro deben coincidir, generalmente resulta mas simple omitir este parametro
  44.  
  45. callback [Closure, Funcion anonima] [opcional]: Funcion encargada de trabajar los datos recibidos para luego ser devueltos por GetResults()
  46. Ejemplo: $zdb->GetHandler('FETCH_FIELD_HANDLER'), $zdb->GetHandler('FETCH_ROW_HANDLER'), $zdb->GetHandler('FETCH_ROWS_HANDLER'),
  47. $result = array();
  48. // Siempre es posible pasar variables desde el contexto actual hacia el callback utilizando use(&$var1, &$var2, ... etc)
  49. function($results) use (&$result){
  50. $row = array();
  51. foreach($results as $key => $value) $row[$key] = $value;
  52.  
  53. // SetResults y AppendResults afectan a los resultados devueltos por GetResults(), SetResults establece los resultsdos y AppendResults los agrega a un resultado anterior existente
  54. $this->SetResults($row);
  55. // o
  56. $this->AppendResults($row);
  57. $result[] = $row;
  58. // o $result = $row;
  59. }
  60. fetch [bool] [opcional]: True si queremos obtener los resultados directamente luego de la ejecucion de Query()
  61. connection [mysqli_connection] [opcional]: Conexion a base de datos mysqli a utilizar para la consulta actual
  62.  
  63. Solo el primer parametro es requerido, todos los demas pueden omitirse utilizando 'false' para utilizar su comportamiento por defecto
  64. */
  65.  
  66. // Ejemplos:
  67.  
  68. // Automaticamente retorna un solo valor
  69. $version = $zdb->Query('SELECT VERSION()')->GetResults();
  70.  
  71. // Automaticamente retorna un array()
  72. $user = $zdb->Query('SELECT id, firstname, lastname FROM mdl_user WHERE id = 123')->GetResults();
  73.  
  74. // Automaticamente retorna un array de arrays: array(array(), array())
  75. $zdb->Query('SELECT id, firstname, lastname FROM mdl_user WHERE id IN (123, 321)')->GetResults();
  76.  
  77. // Pasando un parametro
  78. $id = 123;
  79. $user = $zdb->Query('SELECT id, firstname, lastname FROM mdl_user WHERE id = ?', 'i', $id)->GetResults();
  80.  
  81. // Pasando varios parametros
  82. $user = $zdb->Query('SELECT id, firstname, lastname FROM mdl_user WHERE id = ? AND suspended = ?', 'ii', array($id, 0))->GetResults();
  83.  
  84. // Renombrando los valores devueltos
  85. $user = $zdb->Query('SELECT id, firstname, lastname FROM mdl_user WHERE id = ?', 'i', 123, array('userId', 'userLastname', 'userFirstname'))->GetResults();
  86.  
  87. // Ejecutando un callback personalizado y utilizando una variable fuera del contexto del callback
  88. $users = array();
  89. $zdb->Query("SELECT * FROM mdl_user LIMIT 100", false, false, false, function($results) use (&$users){
  90. if($results['suspended'] == 1){
  91. $user = array('id' => $results['id']);
  92. $user['firstname'] = utf8_encode($results['firstname']);
  93. $user['lastname'] = utf8_encode($results['lastname']);
  94. $users[] = $user;
  95. }
  96. });
  97.  
  98. // Utilizando una nueva conexion a mysql para una db diferente solo para una consulta
  99. $database_2 = 'test_db_2';
  100. $connection_new = new mysqli($host, 'root', $password, $database_2, $port);
  101. $user = $zdb->Query('SELECT id, firstname, lastname FROM mdl_user WHERE id = 123', false, false, false, false, false, $connection_new)->GetResults();
  102.  
  103. // Puede verificarse que una consulta se ejecute correctamente utilizando Success()
  104. $params = array(1, 'ZeusAFK', 'Technologies');
  105. $query = "INSERT INTO mdl_user (id, firstname, lastnme) VALUES (?,?,?)";
  106. if($zdb->Query($query, 'iss', $params)->Success()){
  107. die('Usuario creado');
  108. }else{
  109. die($zdb->GetError());
  110. // Unknown column 'lastnme' in 'field list'
  111. }
  112.  
  113. echo 'Hola mundo';
Add Comment
Please, Sign In to add comment