Version: v2.3.0
insert
Insérer un ou plusieurs enregistrements dans une table.
insert($table, $values)
table [string]
Le nom de la table.
values [array]
Les données à insérer.
Valeur de retour
[PDOStatement] Instance PDOStatement pour la requête exécutée.
$database->insert("account", [
"user_name" => "foo",
"email" => "foo@bar.com",
"age" => 25
]);
ID de la dernière insertion
Pour obtenir l'ID de ligne inséré, appelez
id() après insert().$database->insert("account", [
"user_name" => "foo",
"email" => "foo@bar.com",
"age" => 25
]);
$account_id = $database->id();
Pour Oracle, fournissez la clé primaire comme troisième paramètre de
insert().$database->insert("ACCOUNT", [
"NAME" => "foo"
], "ID");
$account_id = $database->id();
Sérialisation de tableau
Par défaut, les valeurs du tableau sont sérialisées avec
serialize() avant l'insertion. Vous pouvez utiliser [JSON] pour les stocker avec json_encode() à la place.$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"]\'
]);
Détection automatique du type
Medoo détecte et lie automatiquement les types de données avant l'insertion pour des écritures plus sûres et plus efficaces.
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", [
// Valeur de type chaîne.
"user_name" => "foo",
// Valeur entière.
"age" => 25,
// Valeur booléenne.
"is_locked" => true,
// Valeur de tableau.
"lang" => ["en", "fr", "jp", "cn"],
// Valeur de tableau encodée en JSON.
"lang [JSON]" => ["en", "fr", "jp", "cn"],
// Valeur d'objet.
"object_data" => $object_data,
// Objets volumineux (LOB).
"image" => $fp
]);
Multi-insertion
Vous pouvez également insérer plusieurs lignes en un seul appel.
$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() renvoie un objet PDOStatement, vous pouvez donc appeler les méthodes PDOStatement pour plus de détails.$data = $database->insert("account", [
"user_name" => "foo",
"email" => "foo@bar.com",
"age" => 25
]);
// Retourne le nombre de lignes affectees par la derniere instruction SQL.
echo $data->rowCount();
// Reference : https://php.net/manual/en/class.pdostatement.php
Utilisation des fonctions SQL
Vous pouvez utiliser les fonctions SQL via l'objet brut pour des cas d'utilisation avancés. En savoir plus sur https://medoo.in/api/raw.
$database->insert("account", [
"user_name" => "bar",
"uid" => Medoo::raw("UUID()")
]);