การเชื่อมต่อฐานข้อมูลใน Laravel
Laravel รองรับการเชื่อมต่อฐานข้อมูลผ่าน Eloquent ORM และ Query Builder ซึ่งสามารถทำงานร่วมกับฐานข้อมูลหลายประเภท เช่น MySQL, PostgreSQL, SQLite และ SQL Server
1️⃣ การตั้งค่าการเชื่อมต่อฐานข้อมูล
ไฟล์การตั้งค่าฐานข้อมูลใน Laravel อยู่ที่
.env
config/database.php
📌 1.1 ตั้งค่าในไฟล์ .env
เปิดไฟล์ .env
และตั้งค่าการเชื่อมต่อฐานข้อมูล เช่น MySQL
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=my_database
DB_USERNAME=my_user
DB_PASSWORD=my_password
🔹 เปลี่ยนค่า DB_DATABASE
, DB_USERNAME
, และ DB_PASSWORD
ตามค่าจริงของคุณ
🔹 ถ้าใช้ SQLite, ให้แก้เป็น
DB_CONNECTION=sqlite
DB_DATABASE=/absolute/path/to/database.sqlite
(หรือใช้ database/database.sqlite
ในโปรเจกต์)
📌 1.2 ตั้งค่าใน config/database.php
แม้ว่าจะไม่ค่อยต้องแก้ไฟล์นี้ แต่ถ้าต้องการกำหนดค่าเพิ่มเติม สามารถแก้ได้ที่
return [
'default' => env('DB_CONNECTION', 'mysql'),
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
],
];
⚠️ หมายเหตุ:
- Laravel ใช้ค่าจาก
.env
ก่อน ถ้ามีการเปลี่ยนแปลง.env
อย่าลืมรันphp artisan config:clear
2️⃣ ทดสอบการเชื่อมต่อฐานข้อมูล
หลังจากตั้งค่าแล้ว สามารถทดสอบการเชื่อมต่อได้ด้วยคำสั่งนี้
php artisan migrate
ถ้าเชื่อมต่อสำเร็จ จะสร้างตาราง migrations
และไม่มี error
ถ้าต้องการทดสอบจากโค้ด PHP ใช้ DB::connection()
ได้ เช่น
use Illuminate\Support\Facades\DB;
try {
DB::connection()->getPdo();
echo "Database connection successful!";
} catch (\Exception $e) {
echo "Error: " . $e->getMessage();
}
✅ ถ้าทำงานได้ แสดงว่าการเชื่อมต่อสำเร็จ
3️⃣ การใช้ฐานข้อมูลในโค้ด Laravel
📌 3.1 ใช้ Query Builder (DB::table()
)
use Illuminate\Support\Facades\DB;
$users = DB::table('users')->get();
foreach ($users as $user) {
echo $user->name;
}
📌 3.2 ใช้ Eloquent ORM
use App\Models\User;
$users = User::all();
foreach ($users as $user) {
echo $user->name;
}
4️⃣ การใช้หลายฐานข้อมูลใน Laravel
หากต้องการเชื่อมต่อ หลายฐานข้อมูล สามารถเพิ่มการตั้งค่าใน config/database.php
'connections' => [
'mysql' => [...], // การตั้งค่าฐานข้อมูลหลัก
'second_db' => [
'driver' => 'mysql',
'host' => env('DB2_HOST', '127.0.0.1'),
'database' => env('DB2_DATABASE', 'second_db'),
'username' => env('DB2_USERNAME', 'root'),
'password' => env('DB2_PASSWORD', ''),
],
]
และใช้งานโดยระบุ connection:
$users = DB::connection('second_db')->table('users')->get();
สรุป
- ตั้งค่าฐานข้อมูลใน
.env
เช่นDB_CONNECTION
,DB_DATABASE
,DB_USERNAME
- ใช้คำสั่ง
php artisan migrate
เพื่อตรวจสอบการเชื่อมต่อ - เข้าถึงฐานข้อมูลด้วย Query Builder (
DB::table()
) หรือ Eloquent (User::all()
) - รองรับหลายฐานข้อมูล โดยเพิ่ม config ใน
config/database.php
✅ เท่านี้ Laravel ของคุณก็เชื่อมต่อกับฐานข้อมูลได้เรียบร้อย! 🚀