AR العربية
الإصدار: v2.3.0

insert

إدراج سجل واحد أو أكثر في الجدول.

insert($table, $values)
القيمة المُعادة
[PDOStatement] مثيل PDOStatement للاستعلام الذي تم تنفيذه.
$database->insert("account", [
	"user_name" => "foo",
	"email" => "foo@bar.com",
	"age" => 25
]);

معرّف آخر صف تم إدراجه

للحصول على معرّف الصف المُدرج، استدعِ 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() قبل الإدراج. يمكنك استخدام [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()")
]);