Acceso a la base de datos

La clase DataBase nos permite operar directamente con la base de datos de FacturaScripts. Conecta automáticamente al iniciar FacturaScripts y mantiene una única instancia durante toda la ejecución.

Limitaciones

No es posible conectar a otra base de datos que no sea la de FacturaScripts.

Conexión y desconexión

FacturaScripts ya conecta automáticamente al iniciar y desconecta cuando ha terminado la ejecución. No es necesario ni aconsejable llamar manualmente a los métodos connect() o close().

Acceso desde modelos y controladores

Los modelos pueden acceder a la base de datos directamente llamando a self::$dataBase. Los controladores llamando a $this->dataBase.

Para el resto de clases es necesario usar el namespace:

use FacturaScripts\Core\Base\DataBase;

$dataBase = new DataBase();

Hacer un select

Puede ejecutar una consulta select y obtener los resultados llamando al método select().

$dataBase = new DataBase();
$data = $dataBase->select('SELECT DISTINCT ciudad FROM clientes;');
var_dump($data);

Este método devuelve un array con los resultados. Si no hay resultados en array estará vacío.

Paginación

Para hacer un select con paginación podemos usar el método selectLimit().

$dataBase = new DataBase();
$limit = 100;
$offset = 100;
$data = $dataBase->selectLimit('SELECT * FROM clientes', $limit, $offset);
var_dump($data);

En esta consulta obtenemos el listado de clientes, limitado a 100 elementos, pero emepezando a partir del elemento nº100, es decir, es como obtener la segunda página de resultados de la consulta. Con el $limit indicamos cuantos elementos devolver, y con el $offset indicamos a partir de qué posición hacerlo.

Insert, update o delete

Para ejecutar consultas de tipo insert, update o delete utilice el método exec().

$dataBase = new DataBase();
$dataBase->exec("UPDATE clientes SET ciudad = 'Alicante';");

Este método devuelve TRUE si la consulta se ejecuta correctamente o FALSE en caso contrario.

Transacciones

Las transacciones permiten deshacer cambios en la base de datos. Una transacción consta de 3 pasos:

  • Iniciar transacción.
  • Hacer cambios.
  • Confirmar cambios o deshacer transacción.
// iniciamos la transacción
$dataBase = new DataBase();
$dataBase->beginTransaction();

// hacemos cambios
$dataBase->exec("UPDATE clientes SET ciudad = 'Alicante';");

// decidimos qué hacer
if( ... ) {
   $dataBase->rollback(); /// deshacer
} else {
   $dataBase->commit(); /// confirmar
}

Las transacciones también afectan a los cambios realizados por modelos, es decir, que podemos usarlas incluso cuando operamos con modelos:

// iniciamos la transacción
$dataBase = new DataBase();
$dataBase->beginTransaction();

// creamos 100 productos
$total = 0;
for($num = 1; $num <= 100; $num++) {
   $newProduct = new Producto();
   $newProduct->descripcion = 'Producto ' . $num;
   $newProduct->referencia = 'producto' . $num;
   if(false === $newProduct->save()) {
      break;
   }

   $total++;
}

// si hemos creado menos de 100 productos, deshacemos los cambios (los productos desaparecen)
if($total < 100) {
   $dataBase->rollback(); /// deshacer
} else {
   $dataBase->commit(); /// confirmar
}

Transacciones dentro de transacciones

FacturaScripts no permite hacer transacciones dentro de otras transacciones. Lo que si que podemos hacer es comprobar previamente si ya estamos dentro de una transacción o la iniciamos nosotros:

// comprobamos o iniciamos la transacción
$dataBase = new DataBase();
$newTransation = false === $dataBase->inTransaction() && $dataBase->beginTransaction();

// hacemos cambios
...

// decidimos qué hacer
if(false === $newTransation) {
  // la transacción no la hemos iniciado nosotros, así que no hacemos nada
} if( ... ) {
   $dataBase->rollback(); // deshacer
} else {
   $dataBase->commit(); // confirmar
}

Siguiente

Necesita identificarse para continuar con esta acción. Haga clic en iniciar sesión o cree una cuenta.

Iniciar sesión
PRO
neorazorx_1
neorazorx_1

España, 9 años, nivel 100

Creación de plugins

Patrocinadores

FacturaScripts avanza más rápido gracias al apoyo financiero de los patrocinadores, que contribuyen a que podamos dedicar más tiempo al desarrollo, testeo y documentación. Usted también puede poner su granito de arena y convertirse en patrocinador ;-)

ORO
elurk_3992
ORO
manel_11440
ORO
alexis_8932
ORO
informatica_13304
ORO
oibafnarud_87
ORO
ecuproes_16691
ORO
wf_12852
PLATA
compras_1706
PLATA
v.delgado_14821
PLATA
acaselles_13670
PLATA
adelantia_311
PLATA
mg_15736
PLATA
victornc83_9559
PLATA
capitanhumildad_17492
PLATA
inaki_6037
BRONCE
rexmaris_12857
BRONCE
jlgonzalezdiaz_12316
BRONCE
fnusmas_5683
BRONCE
gerardodisla_2723
PRO
neorazorx_1
PRO
jmoreno_2610
PRO
civernet_11724
PRO
yopli2000_5
PRO
daniel89fg_739
PRO
prebac_1378
Patrocinar

Amplíe sus conocimientos con los cursos oficiales

Curso básico de programación

Con este curso aprenderá cómo crear un plugin sencillo para FacturaScripts 2021: añadir nuevas páginas, tablas y columnas. Para entender este curso no se necesita mucha experiencia en programación, le enseñaremos los básico para modelar problemas sencillos. ¿A quién va dirigido? A cualquier persona con unos conocimientos muy básicos de programación. ¿Qué incluye? 18 lecciones con 14 vídeos explicativos.

314 9,99 €
Sesiones de programación

Esta es una recopilación de vídeos y documentación de pequeños desarrollos sobre FacturaScripts y sus plugins. Perfecto para expandir tus conocimientos de programación. ¿A quién va dirigido? A personas que ya hayan superado el curso básico de programación y busquen ampliar sus conocimientos. ¿Qué incluye? 19 lecciones con 19 vídeos explicativos (más de 9 horas de vídeos) y el código fuente de los ejemplos. Novedades mensuales: Este curso se amplía cada mes con nuevas lecciones.

90 19,99 €
Cookies
Usamos cookies en nuestro sitio web para brindarte la experiencia más relevante recordando tus preferencias y visitas repetidas. Al hacer clic en "Aceptar", aceptas el uso de TODAS las cookies necesarias.

Copyright (c) 2013-2022 FacturaScripts

Soporte