Yii - Acesso ao Banco de Dados
Yii DAO (Database Access Object) fornece uma API para acessar bancos de dados. Ele também serve como base para outros métodos de acesso ao banco de dados: registro ativo e criador de consultas.
Yii DAO suporta os seguintes bancos de dados -
- MySQL
- MSSQL
- SQLite
- MariaDB
- PostgreSQL
- ORACLE
- CUBRID
Criando uma conexão de banco de dados
Step 1 - Para criar uma conexão de banco de dados, você precisa criar uma instância da classe yii \ db \ Connection.
$mydb = new yii\db\Connection([
'dsn' => 'mysql:host=localhost;dbname=mydb',
'username' => 'username',
'password' => 'password',
'charset' => 'utf8',
]);
Uma prática comum é configurar uma conexão DB dentro dos componentes do aplicativo. Por exemplo, no modelo de aplicativo básico, a configuração da conexão DB está localizada noconfig/db.php arquivo conforme mostrado no código a seguir.
<?php
return [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host = localhost;dbname = helloworld',
'username' => 'vladimir',
'password' => '123574896',
'charset' => 'utf8',
];
?>
Step 2 - Para acessar a conexão DB você pode usar esta expressão.
Yii::$app->db
Para configurar uma conexão de banco de dados, você deve especificar seu DSN (Nome da fonte de dados) por meio do dsnpropriedade. O formato DSN varia para bancos de dados diferentes -
MySQL, MariaDB - mysql: host = localhost; dbname = mydb
PostgreSQL - pgsql: host = localhost; port = 5432; dbname = mydb
SQLite - sqlite: / caminho / para / db / arquivo
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
Para mostrar a consulta de banco de dados em ação, precisamos de dados.
Preparando o banco de dados
Step 1- Crie um novo banco de dados. O banco de dados pode ser preparado das duas maneiras a seguir.
No terminal, execute mysql -u root –p .
Crie um novo banco de dados via CREATE DATABASE helloworld CHARACTER SET utf8 COLLATE utf8_general_ci;
Step 2 - Configure a conexão do banco de dados no config/db.phpArquivo. A configuração a seguir é para o sistema usado atualmente.
<?php
return [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host = localhost;dbname = helloworld',
'username' => 'vladimir',
'password' => '12345',
'charset' => 'utf8',
];
?>
Step 3 - Dentro da pasta raiz run ./yii migrate/create test_table. Este comando criará uma migração de banco de dados para gerenciar nosso banco de dados. O arquivo de migração deve aparecer nomigrations pasta da raiz do projeto.
Step 4 - Modifique o arquivo de migração (m160106_163154_test_table.php neste caso) desta forma.
<?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');
}
}
?>
A migração acima cria um usertabela com estes campos: id, nome e email. Ele também adiciona alguns usuários de demonstração.
Step 5 - Dentro da raiz do projeto run ./yii migrate para aplicar a migração ao banco de dados.
Step 6 - Agora, precisamos criar um modelo para o nosso usermesa. Para simplificar, vamos usar oGiiferramenta de geração de código. Abra issourl: http://localhost:8080/index.php?r=gii. Em seguida, clique no botão “Iniciar” sob o cabeçalho “Gerador de modelo”. Preencha o Nome da Tabela (“usuário”) e a Classe do Modelo (“MeuUsuário”), clique no botão “Visualizar” e por fim, clique no botão “Gerar”.
O modelo MyUser deve aparecer no diretório de modelos.