Yii - Akses Database
Yii DAO (Objek Akses Database) menyediakan API untuk mengakses database. Ini juga berfungsi sebagai dasar untuk metode akses database lainnya: rekaman aktif dan pembuat kueri.
Yii DAO mendukung database berikut -
- MySQL
- MSSQL
- SQLite
- MariaDB
- PostgreSQL
- ORACLE
- CUBRID
Membuat Koneksi Database
Step 1 - Untuk membuat koneksi database, Anda perlu membuat turunan dari kelas yii \ db \ Connection.
$mydb = new yii\db\Connection([
'dsn' => 'mysql:host=localhost;dbname=mydb',
'username' => 'username',
'password' => 'password',
'charset' => 'utf8',
]);
Praktik yang umum adalah mengkonfigurasi koneksi DB di dalam komponen aplikasi. Misalnya, di template aplikasi dasar konfigurasi koneksi DB terletak di fileconfig/db.php file seperti yang ditunjukkan pada kode berikut.
<?php
return [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host = localhost;dbname = helloworld',
'username' => 'vladimir',
'password' => '123574896',
'charset' => 'utf8',
];
?>
Step 2 - Untuk mengakses koneksi DB Anda dapat menggunakan ungkapan ini.
Yii::$app->db
Untuk mengkonfigurasi koneksi DB, Anda harus menentukan DSN (Data Source Name) melalui dsnProperti. Format DSN bervariasi untuk database yang berbeda -
MySQL, MariaDB - mysql: host = localhost; dbname = mydb
PostgreSQL - pgsql: host = localhost; port = 5432; dbname = mydb
SQLite - sqlite: / path / ke / db / file
MS SQL Server (via sqlsrv driver) - sqlsrv: Server = localhost; Database = mydb
MS SQL Server (via mssql driver) - mssql: host = localhost; dbname = mydb
MS SQL Server (via dblib driver) - dblib: host = localhost; dbname = mydb
CUBRID - cubrid: dbname = mydb; host = localhost; port = 33000
Oracle - oci: dbname = // localhost: 1521 / mydb
Untuk menampilkan query database dalam tindakan, kita membutuhkan data.
Mempersiapkan DB
Step 1- Buat database baru. Basis data dapat disiapkan dengan dua cara berikut.
Di terminal, jalankan mysql -u root –p .
Buat database baru melalui CREATE DATABASE helloworld CHARACTER SET utf8 COLLATE utf8_general_ci;
Step 2 - Konfigurasi koneksi database di config/db.phpmengajukan. Konfigurasi berikut adalah untuk sistem yang digunakan saat ini.
<?php
return [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host = localhost;dbname = helloworld',
'username' => 'vladimir',
'password' => '12345',
'charset' => 'utf8',
];
?>
Step 3 - Di dalam folder root run ./yii migrate/create test_table. Perintah ini akan membuat migrasi database untuk mengelola DB kita. File migrasi akan muncul dimigrations folder dari root proyek.
Step 4 - Ubah file migrasi (m160106_163154_test_table.php dalam kasus ini) dengan cara ini.
<?php
use yii\db\Schema;
use yii\db\Migration;
class m160106_163154_test_table extends Migration {
public function safeUp() {
$this->createTable("user", [ "id" => Schema::TYPE_PK, "name" => Schema::TYPE_STRING, "email" => Schema::TYPE_STRING, ]); $this->batchInsert("user", ["name", "email"], [
["User1", "[email protected]"],
["User2", "[email protected]"],
["User3", "[email protected]"],
["User4", "[email protected]"],
["User5", "[email protected]"],
["User6", "[email protected]"],
["User7", "[email protected]"],
["User8", "[email protected]"],
["User9", "[email protected]"],
["User10", "[email protected]"],
["User11", "[email protected]"],
]);
}
public function safeDown() {
$this->dropTable('user');
}
}
?>
Migrasi di atas menciptakan usertabel dengan bidang ini: id, nama, dan email. Itu juga menambahkan beberapa pengguna demo.
Step 5 - Di dalam akar proyek run ./yii migrate untuk menerapkan migrasi ke database.
Step 6 - Sekarang, kita perlu membuat model untuk file usermeja. Demi kesederhanaan, kami akan menggunakan fileGiialat pembuat kode. Buka iniurl: http://localhost:8080/index.php?r=gii. Kemudian, klik tombol "Start" di bawah header "Model generator". Isi Nama Tabel (“user”) dan Model Class (“MyUser”), klik tombol “Preview” dan terakhir, klik tombol “Generate”.

Model MyUser akan muncul di direktori model.