Versión: v2.3.0
insert
Insertar uno o más registros en una tabla.
insert($table, $values)
table [string]
El nombre de la tabla.
values [array]
Los datos a insertar.
Valor devuelto
[PDOStatement] La instancia PDOStatement de la consulta ejecutada.
$database->insert("account", [
"user_name" => "foo",
"email" => "foo@bar.com",
"age" => 25
]);
Última ID de inserción
Para obtener el ID de fila insertado, llame a
id() después de insert().$database->insert("account", [
"user_name" => "foo",
"email" => "foo@bar.com",
"age" => 25
]);
$account_id = $database->id();
Para Oracle, proporcione la clave principal como tercer parámetro de
insert().$database->insert("ACCOUNT", [
"NAME" => "foo"
], "ID");
$account_id = $database->id();
Serialización de matrices
De forma predeterminada, los valores de la matriz se serializan con
serialize() antes de la inserción. Puedes usar [JSON] para almacenarlos con json_encode() en su lugar.$database->insert("account", [
"user_name" => "foo",
"email" => "foo@bar.com",
"age" => 25,
"lang" => ["en", "fr", "jp", "cn"] // => \'a:4:{i:0;s:2:"en";i:1;s:2:"fr";i:2;s:2:"jp";i:3;s:2:"cn";}\'
]);
$database->insert("account", [
"user_name" => "foo",
"email" => "foo@bar.com",
"age" => 25,
"lang [JSON]" => ["en", "fr", "jp", "cn"] // => \'["en","fr","jp","cn"]\'
]);
Detección automática de tipos
Medoo detecta y vincula automáticamente los tipos de datos antes de la inserción para lograr escrituras más seguras y eficientes.
class Foo {
var $bar = "cat";
public function __wakeup()
{
$this->bar = "dog";
}
}
$object_data = new Foo();
$fp = fopen($_FILES[ "file" ][ "tmp_name" ], "rb");
$database->insert("account", [
// Valor de cadena.
"user_name" => "foo",
// Valor entero.
"age" => 25,
// Valor booleano.
"is_locked" => true,
// Valor de array.
"lang" => ["en", "fr", "jp", "cn"],
// Valor de array codificado como JSON.
"lang [JSON]" => ["en", "fr", "jp", "cn"],
// Valor de objeto.
"object_data" => $object_data,
// Objetos grandes (LOB).
"image" => $fp
]);
Inserción múltiple
También puede insertar varias filas en una sola llamada.
$database->insert("account", [
[
"user_name" => "foo",
"email" => "foo@bar.com",
"age" => 25,
"city" => "New York",
"lang [JSON]" => ["en", "fr", "jp", "cn"]
],
[
"user_name" => "bar",
"email" => "bar@foo.com",
"age" => 14,
"city" => "Hong Kong",
"lang [JSON]" => ["en", "jp", "cn"]
]
]);
PDOStatement
insert() devuelve un objeto PDOStatement, por lo que puedes llamar a los métodos PDOStatement para obtener detalles adicionales.$data = $database->insert("account", [
"user_name" => "foo",
"email" => "foo@bar.com",
"age" => 25
]);
// Devuelve el número de filas afectadas por la última sentencia SQL.
echo $data->rowCount();
// Referencia: https://php.net/manual/en/class.pdostatement.php
Uso de funciones SQL
Puede usar funciones SQL mediante el objeto raw en casos de uso avanzados. Lea más en la documentación raw.
$database->insert("account", [
"user_name" => "bar",
"uid" => Medoo::raw("UUID()")
]);