insert
Insert one or more records into the table.
table [string]
The table name.
values [array]
The value data that will be inserted into the table.
$database->insert("account", [ "user_name" => "foo", "email" => "foo@bar.com", "age" => 25 ]);
Last insert ID
If you want the row ID after the insertion, you need to call the lastInsertId() alone and get it.
$database->insert("account", [ "user_name" => "foo", "email" => "foo@bar.com", "age" => 25 ]); $account_id = $database->id();
For Oracle, you need to provide the primary key as the last parameter for insertation.
$database->insert("ACCOUNT", [ "NAME" => "foo" ], "ID"); $account_id = $database->id();
Array serialization
By default, the array data will be serialized by serialize()
before insertion, but you can assign it as JSON to be serialized by json_encode()
.
$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"]\' ]);
Type auto-detection
Medoo will automatically detect the data type before insertion and optimize it to store it into the database.
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", [ // String value "user_name" => "foo", // Integer value "age" => 25, // Boolean value "is_locked" => true, // Array value "lang" => ["en", "fr", "jp", "cn"], // Array value encoded as JSON "lang [JSON]" => ["en", "fr", "jp", "cn"], // Object value "object_data" => $object_data, // Large Objects (LOBs) "image" => $fp ]);
Multi-insertion
You can also insert data multiply.
$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
The returned object of insert() is PDOStatement, so you can use its methods to get more information.
$data = $database->insert("account", [ "user_name" => "foo", "email" => "foo@bar.com", "age" => 25 ]); // Returns the number of rows affected by the last SQL statement echo $data->rowCount(); // Read more: http://php.net/manual/en/class.pdostatement.php
Using SQL functions
You can now use SQL functions with the raw object for complex usage. Read more from https://medoo.in/api/raw.
$database->insert("account", [ "user_name" => "bar", "uid" => Medoo::raw("UUID()") ]);