TH ไทย
เวอร์ชัน: v2.3.0

insert

แทรกหนึ่งหรือหลายระเบียนลงในตาราง

insert($table, $values)
ค่าที่ส่งกลับ
[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()")
]);