การเชื่อมต่อฐานข้อมูลใน 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 ของคุณก็เชื่อมต่อกับฐานข้อมูลได้เรียบร้อย! 🚀

Leave a Reply

Your email address will not be published. Required fields are marked *