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

เริ่มต้นใช้งาน

การเริ่มต้นใช้งาน Medoo นั้นตรงไปตรงมา

ความต้องการ

รายการส่วนขยาย PHP PDO

รายการต่อไปนี้แสดงส่วนขยาย PDO ที่จะติดตั้งตามประเภทฐานข้อมูลและแพลตฟอร์มของคุณ
ชื่อ ไดรเวอร์
MySQL, MariaDB php_pdo_mysql
MSSQL php_pdo_sqlsrv / php_pdo_dblib
Oracle php_pdo_oci
SQLite php_pdo_sqlite
PostgreSQL php_pdo_pgsql
Sybase php_pdo_dblib

การติดตั้งไดรเวอร์ PDO สำหรับ PHP

Medoo ต้องการ PHP ที่เปิดใช้งาน PDO หากยังไม่ได้ติดตั้งหรือเปิดใช้ PDO ให้ทำตามขั้นตอนต่อไปนี้
// แก้ไขไฟล์ php.ini และลบอัฒภาคด้านหน้าของส่วนขยายฐานข้อมูลที่ต้องการเปิดใช้งาน

// .dll ใช้บน Windows ส่วน .so ใช้บน Linux/UNIX

// ก่อน
;extension=php_pdo_mysql.dll
;extension=php_pdo_mysql.so

// หลัง
extension=php_pdo_mysql.dll
extension=php_pdo_mysql.so

// บันทึกไฟล์ แล้วรีสตาร์ต PHP หรือ Apache/Nginx

// หากติดตั้ง PDO ถูกต้อง จะมองเห็นได้ใน phpinfo().
หรือติดตั้งจากเทอร์มินัล ส่วนขยาย PDO จะถูกเปิดใช้งานและกำหนดค่าโดยอัตโนมัติ
$ sudo apt-get install php7.4-mysql

ติดตั้งด้วย Composer

หากคุณใช้ Composer ให้ติดตั้ง Medoo ด้วยคำสั่งต่อไปนี้
$ composer require catfan/medoo
Composer จะติดตั้งแพ็กเกจที่จำเป็นให้อัตโนมัติ เรียกใช้ composer update เฉพาะเมื่อต้องการอัปเดตแพ็กเกจเหล่านั้นด้วยตนเองเท่านั้น
$ composer update

ติดตั้งแบบแมนนวล

อีกทางเลือกที่ง่ายคือดาวน์โหลด medoo.php วางไว้ในโปรเจกต์ของคุณ แล้ว include ด้วย require
require 'Medoo.php';

การตั้งค่า

ส่งอาร์เรย์การตั้งค่าให้ Medoo เพื่อเริ่มต้นการทำงานและเชื่อมต่อฐานข้อมูล
// โหลด autoloader ของ Composer
require 'vendor/autoload.php';

// นำเข้า namespace ของ Medoo
use Medoo\Medoo;

$database = new Medoo([
	// จำเป็น
	'type' => 'mysql',
	'host' => 'localhost',
	'database' => 'name',
	'username' => 'your_username',
	'password' => 'your_password',

	// ไม่บังคับ
	'charset' => 'utf8mb4',
	'collation' => 'utf8mb4_general_ci',
	'port' => 3306,

		// ไม่บังคับ: คำนำหน้าตาราง ชื่อตารางทั้งหมดจะกลายเป็น PREFIX_table
	'prefix' => 'PREFIX_',

	// ไม่บังคับ: เปิดการบันทึกคิวรี โดยค่าเริ่มต้นจะปิดไว้เพื่อประสิทธิภาพที่ดีกว่า
	'logging' => true,

	// ไม่บังคับ
	// โหมดข้อผิดพลาด
	// กำหนดว่า PDO จะรายงานข้อผิดพลาดอย่างไร
	// PDO::ERRMODE_SILENT (ค่าเริ่มต้น) | PDO::ERRMODE_WARNING | PDO::ERRMODE_EXCEPTION
	// อ้างอิง: https://www.php.net/manual/en/pdo.error-handling.php.
	'error' => PDO::ERRMODE_SILENT,

	// ไม่บังคับ
	// ตัวเลือกไดรเวอร์สำหรับการเชื่อมต่อ
	// อ้างอิง: https://www.php.net/manual/en/pdo.setattribute.php.
	'option' => [
		PDO::ATTR_CASE => PDO::CASE_NATURAL
	],

	// ไม่บังคับ: คำสั่งที่จะรันหลังจากเชื่อมต่อฐานข้อมูลสำเร็จ
	'command' => [
		'SET SQL_MODE=ANSI_QUOTES'
	]
]);

การเชื่อมต่อ DSN แบบกำหนดเอง

คุณยังสามารถจัดเตรียม DSN แบบกำหนดเองเพื่อเชื่อมต่อฐานข้อมูลที่ Medoo ไม่รองรับแบบสำเร็จรูป หรือเพื่อส่งพารามิเตอร์ DSN เพิ่มเติมได้
รูปแบบสตริงการเชื่อมต่อ DSN
{ไดรเวอร์}:{key}={value};{key}={value}
$database = new Medoo([
	'dsn' => [
		// ชื่อไดรเวอร์ PDO ที่ใช้ใน DSN
		'driver' => 'mydb',
		// พารามิเตอร์ DSN ในรูปแบบคู่คีย์-ค่า
		'server' => '12.23.34.45',
		'port' => '8886'
	],
	// ไม่บังคับ: ระบุชนิดฐานข้อมูลเพื่อให้ Medoo ใช้พฤติกรรมที่เหมาะสม
	'type' => 'mysql',

	'username' => 'your_username',
	'password' => 'your_password'
]);

// สตริง DSN ที่สร้างขึ้นสุดท้าย:
mydb:server=12.23.34.45;port=8886

เริ่มต้นจากอินสแตนซ์ PDO

คุณยังสามารถสร้าง Medoo จากอินสแตนซ์ PDO ที่เชื่อมต่อไว้แล้วได้
$pdo = new PDO('mysql:dbname=test;host=127.0.0.1', 'user', 'password');

$database = new Medoo([
	// นำอินสแตนซ์ PDO ที่เชื่อมต่อไว้แล้วกลับมาใช้ซ้ำ
	'pdo' => $pdo,

	// ไม่บังคับ: ระบุชนิดฐานข้อมูลเพื่อให้ Medoo ใช้พฤติกรรมที่เหมาะสม
	'type' => 'mysql'
]);

สำหรับ MySQL

ตัวเลือกนี้มีไว้สำหรับ MySQL เท่านั้น
$database = new Medoo([
	// ไม่บังคับ: MySQL socket ห้ามใช้พร้อมกับ server และ port
	'socket' => '/tmp/mysql.sock',
]);

สำหรับ MariaDB

MariaDB ได้รับการจัดการเหมือนกับ MySQL ประเภทฐานข้อมูลจะถูกแมปกับ mysql โดยอัตโนมัติ
$database = new Medoo([
	'type' => 'mariadb',
	'host' => 'localhost',
	'database' => 'name',
	'username' => 'your_username',
	'password' => 'your_password',
]);

สำหรับ MSSQL

การเชื่อมต่อสมัยใหม่ MSSQL โดยทั่วไปจะใช้ส่วนขยาย pdo_sqlsrv บนทั้ง Windows และ Linux/UNIX Medoo ใช้ไดรเวอร์ pdo_sqlsrv เป็นค่าเริ่มต้น สำหรับสภาพแวดล้อมแบบเดิมที่ต้องใช้ pdo_dblib ให้ตั้งค่าไดรเวอร์อย่างชัดเจนระหว่างการเริ่มต้น ดู https://github.com/Microsoft/msphpsql สำหรับรายละเอียด
$database = new Medoo([
	'type' => 'mssql',
	'host' => 'localhost',
	'database' => 'name',
	'username' => 'your_username',
	'password' => 'your_password',

	// ไม่บังคับ: ชื่อแอปพลิเคชัน
	'appname' => 'test',

	// ไม่บังคับ
	// บังคับให้ Medoo ใช้ไดรเวอร์ dblib สำหรับ MSSQL
	// ค่าเริ่มต้น: sqlsrv
	'driver' => 'dblib'
]);
Medoo ยังรองรับตัวเลือกการเชื่อมต่อ MSSQL เมื่อใช้ไดรเวอร์ sqlsrv ดูรายละเอียดได้ที่ https://docs.microsoft.com/en-us/sql/connect/php/connection-options?view=sql-server-2017.
$database = new Medoo([
	'type' => 'mssql',
	'host' => 'localhost',
	'database' => 'name',
	'username' => 'your_username',
	'password' => 'your_password',

	// ไม่บังคับ: ตัวเลือกการเชื่อมต่อ MSSQL
	'application_intent' => 'ReadOnly',
	'attach_db_file_name' => './database.sql',
	'authentication' => 'SqlPassword',
	'column_encryption' => 'Enabled',
	'connection_pooling' => 1,
	'encrypt' => 1,
	'failover_partner' => 'MultiSubnetFailover',
	'key_store_authentication' => 'KeyVaultPassword',
	'key_store_principal_id' => 'AzureName',
	'key_store_secret' => 'AzurePass',
	'login_timeout' => '20',
	'multiple_active_result_sets' => 1,
	'multi_subnet_failover' => 'Yes',
	'scrollable' => 'buffered',
	'trace_file' => './path',
	'trace_on' => 1,
	'transaction_isolation' => PDO::SQLSRV_TXN_SNAPSHOT,
	'transparent_network_ip_resolution' => 'Enabled',
	'trust_server_certificate' => 1,
	'wsid' => 'Computer1'
]);

สำหรับ SQLite

ฐานข้อมูลแบบไฟล์
$database = new Medoo([
	'type' => 'sqlite',
	'database' => 'my/database/path/database.db'
]);
ฐานข้อมูลในหน่วยความจำ
$database = new Medoo([
	'type' => 'sqlite',
	'database' => ':memory:'
]);
ฐานข้อมูลชั่วคราว
ฐานข้อมูลชั่วคราวจะถูกลบเมื่อการเชื่อมต่อถูกปิด
$database = new Medoo([
	'type' => 'sqlite',
	'database' => ''
]);

// หรือจะละตัวเลือก database ออกไปเลยก็ได้
$database = new Medoo([
	'type' => 'sqlite'
]);

ดีบักสตริง DSN

คุณสามารถตรวจสอบสตริง DSN ที่สร้างขึ้นสุดท้ายได้โดยเรียก info()
$database = new Medoo([
	'type' => 'mysql',
	'host' => '127.0.0.1',
	'database' => 'test',
	'username' => 'your_username',
	'password' => 'your_password',
]);

echo $database->info()['dsn'];

// mysql:dbname=test;host=127.0.0.1

โหมดทดสอบ

โหมดนี้เหมาะสำหรับการทดสอบ คุณสามารถตรวจสอบ SQL ที่สร้างขึ้นผ่าน $database->queryString ได้กับฐานข้อมูลหลายประเภท คิวรีจะถูกสร้างขึ้น แต่จะยังไม่ถูกนำไปรันจริง
$database = new Medoo([
	'testMode' => true
]);

// กำหนดประเภทฐานข้อมูล
$database->type = 'mysql';

$database->select("account", ["user_name"], ["user_id[>]" => 10]);

echo $database->queryString;