เวอร์ชัน: v2.3.0
เริ่มต้นใช้งาน
การเริ่มต้นใช้งาน Medoo นั้นตรงไปตรงมา
ความต้องการ
- PHP 7.3+ พร้อมติดตั้งส่วนขยาย PDO
- ฐานข้อมูล SQL เช่น MySQL, MSSQL, SQLite หรือระบบฐานข้อมูลอื่นที่รองรับโดย PDO
- ตรวจสอบให้แน่ใจว่าได้ติดตั้งและเปิดใช้งานไดรเวอร์ PDO ที่เกี่ยวข้องแล้ว
- ความรู้พื้นฐาน SQL
รายการส่วนขยาย 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 ด้วย requirerequire '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;