Yii Framework2.0開發教程(5)資料庫mysql函數

來源:互聯網
上載者:User

標籤:yii2   framework   mysql   資料庫   

繼續《Yii Framework2.0開發教程(3)資料庫mysql入門》

首先給一些關於yii2資料庫支援的介紹

Yii 基於 PHP‘s PDO建立了一個成熟的資料庫訪問層。它提供統一的 API 並解決了一些不同 DBMS 產生的使用不利。 Yii 預設支援以下 DBMS :
MySQL
MariaDB
SQLite
PostgreSQL
CUBRID: version 9.1.0 or higher.
Oracle
MSSQL: version 2012 或更高版本,如需使用 LIMIT/OFFSET。

配置

開始使用資料庫首先需要設定資料庫串連組件,通過添加 db 組件到應用配置實現("基礎的" Web 應用程式是 config/web.php),如下所示:

return [    // ...    'components' => [        // ...        'db' => [            'class' => 'yii\db\Connection',            'dsn' => 'mysql:host=localhost;dbname=mydatabase', // MySQL, MariaDB            //'dsn' => 'sqlite:/path/to/database/file', // SQLite            //'dsn' => 'pgsql:host=localhost;port=5432;dbname=mydatabase', // PostgreSQL            //'dsn' => 'cubrid:dbname=demodb;host=localhost;port=33000', // CUBRID            //'dsn' => 'sqlsrv:Server=localhost;Database=mydatabase', // MS SQL Server, sqlsrv driver            //'dsn' => 'dblib:host=localhost;dbname=mydatabase', // MS SQL Server, dblib driver            //'dsn' => 'mssql:host=localhost;dbname=mydatabase', // MS SQL Server, mssql driver            //'dsn' => 'oci:dbname=//localhost:1521/mydatabase', // Oracle            'username' => 'root', //資料庫使用者名稱            'password' => '', //資料庫密碼            'charset' => 'utf8',        ],    ],    // ...];

另外請參考PHP manual擷取更多有關 DSN 格式資訊。


在我們的例子中給出的設定檔是

<?php//配置的資料庫連接可以在應用中通過 Yii::$app->db 訪問return [    'class' => 'yii\db\Connection',    'dsn' => 'mysql:host=localhost;dbname=zhyoulun',    'username' => 'root',    'password' => '20092565',    'charset' => 'utf8',];

接下來我們就可以在《Yii Framework2.0開發教程(1)配置環境及第一個應用HelloWorld》建立的views/zhyoulun/helloworld.php中寫我們接下來的測試代碼。


第一步、資料庫連接初始化的兩種方式

(1)

$connection = Yii::$app->db;$connection->open();

(2)

$connection = new \yii\db\Connection(['dsn' => 'mysql:host=localhost;dbname=zhyoulun',    'username' => 'root',    'password' => '20092565',    'charset' => 'utf8']);$connection->open();

第二步:查詢並顯示資料

$command = $connection->createCommand('SELECT * FROM country');$countries = $command->queryAll();echo '<pre>';print_r($countries);echo '</pre>';


整個helloworld.php代碼如下

<?php//$connection = Yii::$app->db;//$connection->open();$connection = new \yii\db\Connection(['dsn' => 'mysql:host=localhost;dbname=zhyoulun',    'username' => 'root',    'password' => '20092565',    'charset' => 'utf8']);$connection->open();$command = $connection->createCommand('SELECT * FROM country');$countries = $command->queryAll();echo '<pre>';print_r($countries);echo '</pre>';?>

第三步、我們繼續接著寫,實驗其他常用的函數。

(1)queryOne,返回單行

$command = $connection->createCommand("SELECT * FROM country WHERE code='BR'");$country = $command->queryOne();echo '<pre>';print_r($country);echo '</pre>';


(2)queryColumn,查詢多列值

$command = $connection->createCommand("SELECT code FROM country");$country = $command->queryColumn();echo '<pre>';print_r($country);echo '</pre>';


(3)queryScalar,查詢標量值/計算值

$command = $connection->createCommand("SELECT count(*) FROM country");$country = $command->queryScalar();echo '<pre>';print_r($country);echo '</pre>';


(4)如果執行 SQL 不返回任何資料可使用命令中的 execute 方法(UPDATE, INSERT, DELETE 更新、插入和刪除等)

更新

$command = $connection->createCommand("UPDATE country SET name='Brazil-haha' WHERE code='BR'");$command->execute();


更新

$connection->createCommand()->update('user', ['status' => 1], 'age > 30')->execute();

插入

$connection->createCommand()->insert('user', [    'name' => 'Sam',    'age' => 30,])->execute();

一次插入多行

$connection->createCommand()->batchInsert('user', ['name', 'age'], [    ['Tom', 30],    ['Jane', 20],    ['Linda', 25],])->execute();

刪除

$connection->createCommand()->delete('user', 'status = 0')->execute();

%======================================分割線======================================%

$command = $query->createCommand();$rows = $command->queryAll();

類似中寫法的一種替代方式是(select方法)

$query = new \yii\db\Query;//組織查詢語句$query->select('code')->from('country')->limit(5);//編譯並執行查詢語句$row = $query->all();echo '<pre>';print_r($row);echo '</pre>';

其他函數如where、groupby、orderby、having等參見http://www.yiichina.com/guide/2/db-query-builder





參考:

https://github.com/yiisoft/yii2/blob/master/docs/guide-zh-CN/db-dao.md

http://www.yiichina.com/api/2.0/yii-db-query

http://www.yiichina.com/guide/2/db-query-builder


轉載請註明出處:http://blog.csdn.net/zhyoulun/article/details/40476019

Yii Framework2.0開發教程(5)資料庫mysql函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.