Insertar

PIPE tiene dos formas de insertar datos en las tablas de la base de datos.

En la primera forma, debemos indicar todos los campos de nuestra tabla por medio de atributos en el objeto a excepción de los campos creado_en y actualizado_en (en caso que estén presentes en nuestra tabla) debido a que el ORM PIPE se encarga de llenarlos automáticamente.

En la segunda forma, podemos decidir qué campos tendrán información que será insertada en la tabla.

Forma #1 de inserción de datos.

<?php

$usuario = new Usuario();
$usuario->id = null; // Si nuestra llave primaria es auto incrementable le asignamos el valor por defecto en nuestra base de datos.
$usuario->nombres = 'John';
$usuario->apellidos = 'Doe';
$usuario->correo = 'johndoe@correo.com';
$usuario->insertar(); // Este método devuelve el número de registros insertados.

// Por medio del constructor de consultas PIPE.
$usuario = PIPE::tabla('usuarios');
$usuario->id = null;
$usuario->nombres = 'John';
$usuario->apellidos = 'Doe';
$usuario->correo = 'johndoe@correo.com';
$usuario->insertar();

Forma #2 de inserción de datos.

<?php

$usuario = new Usuario();
$usuario->insertar(
    ['nombres' => 'John', 'apellidos' => 'Doe', 'correo' => 'johndoe@correo.com']
);

// Insertando varios registros simultáneamente.
$usuario = new Usuario();
$usuario->insertar(
    [
        ['nombres' => 'John', 'apellidos' => 'Doe', 'correo' => 'johndoe@correo.com'],
        ['nombres' => 'Juan', 'apellidos' => 'Valencia', 'correo' => 'juanvalencia@correo.com']
    ]
);

// Por medio del constructor de consultas PIPE.
$usuario = PIPE::tabla('usuarios');
$usuario->insertar(
    ['nombres' => 'John', 'apellidos' => 'Doe', 'correo' => 'johndoe@correo.com']
);

// Insertando varios registros simultáneamente.
$usuario = PIPE::tabla('usuarios');
$usuario->insertar(
    [
        ['nombres' => 'John', 'apellidos' => 'Doe', 'correo' => 'johndoe@correo.com'],
        ['nombres' => 'Juan', 'apellidos' => 'Valencia', 'correo' => 'juanvalencia@correo.com']
    ]
);

Inserción de datos por medio del método crear() proporcionado por el modelo el cual realiza la inserción y nos retorna un objeto con los datos creados.

<?php

$usuario = Usuario::crear(
    ['nombres' => 'John', 'apellidos' => 'Doe', 'correo' => 'johndoe@correo.com']
);

El método crear() permite enviar varios registros simultáneamente el cual devuelve un arreglo de objetos con los datos creados.

<?php

$usuarios = Usuario::crear(
    [
        ['nombres' => 'John', 'apellidos' => 'Doe', 'correo' => 'johndoe@correo.com'],
        ['nombres' => 'Juan', 'apellidos' => 'Valencia', 'correo' => 'juanvalencia@correo.com']
    ]
);

El método insertarObtenerId() nos permite insertar un nuevo registro en la base de datos y obtener el último id generado.

<?php

// Por medio del modelo.
$usuarioId = Usuario::insertarObtenerId(
    ['nombres' => 'John', 'apellidos' => 'Doe', 'correo' => 'johndoe@correo.com']
);

// Por medio del constructor de consultas PIPE.
$usuarioId = PIPE::tabla('usuarios')->insertarObtenerId(
    ['nombres' => 'John', 'apellidos' => 'Doe', 'correo' => 'johndoe@correo.com']
);

Inserción de datos por medio del método consulta().

<?php

// Este método devuelve 1 cuando la inserción se ha realizado correctamente.
$resultado = PIPE::consulta(
    "insertar dentro usuarios (id, nombres, apellidos, correo) valores (null, 'John', 'Doe', 'johndoe@correo.com')"
);

// El método consulta() permite enviar los datos de forma segura.
$resultado = PIPE::consulta(
    'insertar dentro usuarios (id, nombres, apellidos, correo) valores (null, ?, ?, ?)', ['John', 'Doe', 'johndoe@correo.com']
);

Inserción de datos por medio del método consultaNativa().

<?php

// Este método devuelve 1 cuando la inserción se ha realizado correctamente.
$resultado = PIPE::consultaNativa(
    "insert into usuarios (id, nombres, apellidos, correo) values (null, 'John', 'Doe', 'johndoe@correo.com')"
);

// El método consultaNativa() permite enviar los datos de forma segura.
$resultado = PIPE::consultaNativa(
    'insert into usuarios (id, nombres, apellidos, correo) values (null, ?, ?, ?)', ['John', 'Doe', 'johndoe@correo.com']
);

Si utilizas el Modelo para interactuar con los datos de la base de datos, tendrás la ventaja de poder omitir las convenciones que tiene el ORM PIPE y adaptarse a la estructura que tenga tu tabla en la base de datos, ya que el Constructor de Consultas se adapta por defecto a las convenciones.