เวอร์ชัน: v2.3.0
insert
แทรกหนึ่งหรือหลายระเบียนลงในตาราง
insert($table, $values)
table [string]
ชื่อตาราง
values [array]
ข้อมูลที่จะแทรก
ค่าที่ส่งกลับ
[PDOStatement] อินสแตนซ์ PDOStatement ของคิวรีที่รันไป
$database->insert("account", [
"user_name" => "foo",
"email" => "foo@bar.com",
"age" => 25
]);
รหัสการแทรกครั้งสุดท้าย
หากต้องการรับ ID ของแถวที่แทรก ให้เรียก
id() หลัง insert()$database->insert("account", [
"user_name" => "foo",
"email" => "foo@bar.com",
"age" => 25
]);
$account_id = $database->id();
สำหรับ Oracle ให้ระบุคีย์หลักเป็นพารามิเตอร์ตัวที่สามของ
insert()$database->insert("ACCOUNT", [
"NAME" => "foo"
], "ID");
$account_id = $database->id();
การ serialize อาร์เรย์
ตามค่าเริ่มต้น ค่าอาร์เรย์จะถูก serialize ด้วย
serialize() ก่อนแทรกข้อมูล คุณสามารถใช้ [JSON] เพื่อจัดเก็บด้วย 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"]\'
]);
พิมพ์การตรวจจับอัตโนมัติ
Medoo ตรวจจับและผูกประเภทข้อมูลโดยอัตโนมัติก่อนที่จะแทรก เพื่อการเขียนที่ปลอดภัยและมีประสิทธิภาพยิ่งขึ้น
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", [
// ค่าสตริง
"user_name" => "foo",
// ค่าจำนวนเต็ม
"age" => 25,
// ค่าบูลีน
"is_locked" => true,
// ค่าอาร์เรย์
"lang" => ["en", "fr", "jp", "cn"],
// ค่าอาร์เรย์ที่เข้ารหัส JSON
"lang [JSON]" => ["en", "fr", "jp", "cn"],
// ค่าออบเจ็กต์
"object_data" => $object_data,
// ออบเจ็กต์ขนาดใหญ่ (LOBs)
"image" => $fp
]);
การแทรกหลายรายการ
คุณยังสามารถแทรกหลายแถวในการเรียกครั้งเดียวได้
$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() ส่งคืนออบเจ็กต์ PDOStatement ดังนั้นคุณจึงสามารถเรียกเมธอด PDOStatement เพื่อดูรายละเอียดเพิ่มเติมได้$data = $database->insert("account", [
"user_name" => "foo",
"email" => "foo@bar.com",
"age" => 25
]);
// ส่งกลับจำนวนแถวที่ได้รับผลจากคำสั่ง SQL ล่าสุด
echo $data->rowCount();
// อ้างอิง: https://php.net/manual/en/class.pdostatement.php
การใช้ฟังก์ชัน SQL
คุณสามารถใช้ฟังก์ชัน SQL ผ่านออบเจ็กต์ Raw สำหรับกรณีการใช้งานขั้นสูงได้ อ่านเพิ่มเติมได้ที่ https://medoo.in/api/raw.
$database->insert("account", [
"user_name" => "bar",
"uid" => Medoo::raw("UUID()")
]);