Bases de datos

La manipulación de las bases de datos en Ocrend Framework se realiza exclusivamente desde los modelos utilizando la característica DBModel.

Listado de drivers soportados

Se presenta una lista con todos los drivers soportados

Driver Nombre interno
MySQL 5.7+ mysql con mysqli nativo
SQLite3 sqlite3 a través de PDO

Para trabajar con un driver u otro, se debe especificar cuál es el driver por defecto en Ocrend.ini.yml

Otra forma de especificar el driver, es directamente en el método startDBConexion() del Trait DBModel.

El atributo $this->db

Una vez que se añade la característica DBModel a un modelo, el modelo hereda el atributo $db, si el motor configurado es SQLite3, será una instancia de PDO PHP y si es MySQL, será una instancia de mysqli PHP

Ambas instancias son una implementación de Ocrend\Kernel\Database\Driver por lo que comparten los siguientes métodos:

Método Función
public scape() : string

Sana un valor para posteriormente ser introducido en una query

  • mixed $e valor a sanar
public select() : false|array

Selecciona y lista en un arreglo asociativo los resultados de una búsqueda en la base de datos, si no hay resultados retorna false

  • string $fields Elementos a seleccionar separados por coma
  • string $table Tabla de la cuál se quiere extraer los elementos
  • $inners = null Instrucciones INNER
  • $where = null Condiciones de búsqueda (las variables externas deben ser filtradas con scape)
  • $limit = null Límite de resultados, sólamente se debe especificar el/los números
  • string $extra = '' Instrucciones extras antes de $limit, como order by, group by...
public update() : int

Actualiza elementos de una tabla en la base de datos según una condición y devuelve la cantidad de filas afectadas.

  • string $table Tabla a editar
  • array $e Arreglo de campos a editar

    
    [
        'campo' => 'valor nuevo'
    ]
    
  • $where = null Condiciones de edición (las variables externas deben ser filtradas con scape)
  • $limit = null Límite de modificaciones, sólamente se debe especificar el número
public insert() : int

Inserta nuevos elementos en una tabla de la base de datos y devuelve el id del último elemento insertado si la tabla tiene una llave primaria con autoincremento.

  • string $table Tabla a donde se insertará los elementos
  • array $e Arreglo de campos a insertar

    
    [
        'campo' => 'valor'
    ]
    
public delete() : int

Elimina elementos de una tabla y devuelve la cantidad de filas afectadas.

  • string $table Tabla de la cuál se eliminará elementos
  • $where = null Condiciones para eliminar
  • $limit = null Límite de elementos a borrar, sólamente se debe especificar el número