Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- require_once('zeusafk.database.lib.php');
- $host = 'localhost';
- $user = 'root';
- $password = 'root';
- $database = 'test_db';
- // El puerto es opcional, por defecto 3306
- $port = 3306;
- // Podemos obtener una instancia compartida de la clase Database sin tener que inicializarla
- $zdb = ZeusAFK\Database::GetInstance();
- // O podemos crear una nueva instancia, lo cual es util si vamos a trabajar con distintas bases de datos
- $zdb = new ZeusAFK\Database();
- // Creamos la conexion a mysql a utilizarse
- $zdb->CreateConnection($host, $user, $password, $database, $port);
- // Podemos verificar si tenemos problemas de conexion u otro tipo
- if(!$zdb->Success()){
- die($zdb->GetError());
- }
- // La funcion principal es Query, esta funcion cuenta con varios parametros opcionales que permiten modificar su funcionalidad para cumplir el objetivo que necesitemos
- /*
- Funcion: Query
- Parametros:
- query [String] [Requerido]: Consulta a ejecutar
- Ejemplo: SELECT * FROM mdl_user WHERE id = ? OR firstname LIKE CONCAT('%',?,'%') LIMIT 1
- types [String] [opcional]: Tipos de datos para parametros en la consulta
- Ejemplo: 'is' // (In]t, String)
- Advertencia: La cantidad de parametros en la consulta (?) debe coincidir con los enviados en este parametro
- params [Array|Var] [opcional]: Parametros en la consulta
- Ejemplo: array($id, $firstname) | o simplemente una variable si es solo un parametro
- Advertencia: La cantidad de parametros (?) en la consulta y los enviados en este parametro deben coincidir
- results [Array] [opcional]: Nombres asignados a los resultados devueltos por la consulta, si no se especifica se utiliza los mismos devueltos por la consulta
- Ejemplo: array('id_abc', 'firstname_abc', 'lastname_abc', 'idnumber_abc', 'email_abc' .... etc)
- Advertencia: La cantidad de columnas devueltas por la consulta y los enviados en este parametro deben coincidir, generalmente resulta mas simple omitir este parametro
- callback [Closure, Funcion anonima] [opcional]: Funcion encargada de trabajar los datos recibidos para luego ser devueltos por GetResults()
- Ejemplo: $zdb->GetHandler('FETCH_FIELD_HANDLER'), $zdb->GetHandler('FETCH_ROW_HANDLER'), $zdb->GetHandler('FETCH_ROWS_HANDLER'),
- $result = array();
- // Siempre es posible pasar variables desde el contexto actual hacia el callback utilizando use(&$var1, &$var2, ... etc)
- function($results) use (&$result){
- $row = array();
- foreach($results as $key => $value) $row[$key] = $value;
- // SetResults y AppendResults afectan a los resultados devueltos por GetResults(), SetResults establece los resultsdos y AppendResults los agrega a un resultado anterior existente
- $this->SetResults($row);
- // o
- $this->AppendResults($row);
- $result[] = $row;
- // o $result = $row;
- }
- fetch [bool] [opcional]: True si queremos obtener los resultados directamente luego de la ejecucion de Query()
- connection [mysqli_connection] [opcional]: Conexion a base de datos mysqli a utilizar para la consulta actual
- Solo el primer parametro es requerido, todos los demas pueden omitirse utilizando 'false' para utilizar su comportamiento por defecto
- */
- // Ejemplos:
- // Automaticamente retorna un solo valor
- $version = $zdb->Query('SELECT VERSION()')->GetResults();
- // Automaticamente retorna un array()
- $user = $zdb->Query('SELECT id, firstname, lastname FROM mdl_user WHERE id = 123')->GetResults();
- // Automaticamente retorna un array de arrays: array(array(), array())
- $zdb->Query('SELECT id, firstname, lastname FROM mdl_user WHERE id IN (123, 321)')->GetResults();
- // Pasando un parametro
- $id = 123;
- $user = $zdb->Query('SELECT id, firstname, lastname FROM mdl_user WHERE id = ?', 'i', $id)->GetResults();
- // Pasando varios parametros
- $user = $zdb->Query('SELECT id, firstname, lastname FROM mdl_user WHERE id = ? AND suspended = ?', 'ii', array($id, 0))->GetResults();
- // Renombrando los valores devueltos
- $user = $zdb->Query('SELECT id, firstname, lastname FROM mdl_user WHERE id = ?', 'i', 123, array('userId', 'userLastname', 'userFirstname'))->GetResults();
- // Ejecutando un callback personalizado y utilizando una variable fuera del contexto del callback
- $users = array();
- $zdb->Query("SELECT * FROM mdl_user LIMIT 100", false, false, false, function($results) use (&$users){
- if($results['suspended'] == 1){
- $user = array('id' => $results['id']);
- $user['firstname'] = utf8_encode($results['firstname']);
- $user['lastname'] = utf8_encode($results['lastname']);
- $users[] = $user;
- }
- });
- // Utilizando una nueva conexion a mysql para una db diferente solo para una consulta
- $database_2 = 'test_db_2';
- $connection_new = new mysqli($host, 'root', $password, $database_2, $port);
- $user = $zdb->Query('SELECT id, firstname, lastname FROM mdl_user WHERE id = 123', false, false, false, false, false, $connection_new)->GetResults();
- // Puede verificarse que una consulta se ejecute correctamente utilizando Success()
- $params = array(1, 'ZeusAFK', 'Technologies');
- $query = "INSERT INTO mdl_user (id, firstname, lastnme) VALUES (?,?,?)";
- if($zdb->Query($query, 'iss', $params)->Success()){
- die('Usuario creado');
- }else{
- die($zdb->GetError());
- // Unknown column 'lastnme' in 'field list'
- }
- echo 'Hola mundo';
Add Comment
Please, Sign In to add comment