Yii Framework2.0开发教程(5)数据库mysql性能
繼續(xù)《Yii Framework2.0開發(fā)教程(3)數(shù)據(jù)庫mysql入門》
首先給予一定的尊重yii2數(shù)據(jù)庫支持引進(jìn)
Yii 基于 PHP's PDO一個(gè)成熟的數(shù)據(jù)庫訪問層的建立。它提供了一個(gè)統(tǒng)一的 API 并且克服了許多不同的 DBMS 違禁使用。 Yii 默認(rèn)支持下面 DBMS :
MySQL
MariaDB
SQLite
PostgreSQL
CUBRID: version 9.1.0 or higher.
Oracle
MSSQL: version 2012 或更高版本號(hào),如需使用 LIMIT/OFFSET。
配置
開始使用數(shù)據(jù)庫首先須要配置數(shù)據(jù)庫連接組件,通過加入 db 組件到應(yīng)用配置實(shí)現(xiàn)("基礎(chǔ)的" Web 應(yīng)用是 config/web.php),例如以下所看到的:
另外請參考PHP manual獲取很多其它有關(guān) DSN 格式信息。
在我們的樣例中給出的配置文件是
<?php //配置的數(shù)據(jù)庫連接能夠在應(yīng)用中通過 Yii::$app->db 訪問return ['class' => 'yii\db\Connection','dsn' => 'mysql:host=localhost;dbname=zhyoulun','username' => 'root','password' => '20092565','charset' => 'utf8', ];接下來我們就能夠在《Yii Framework2.0開發(fā)教程(1)配置環(huán)境及第一個(gè)應(yīng)用HelloWorld》建立的views/zhyoulun/helloworld.php中寫我們接下來的測試代碼。
第一步、數(shù)據(jù)庫連接初始化的兩種方式
(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();第二步:查詢并顯示數(shù)據(jù) $command = $connection->createCommand('SELECT * FROM country'); $countries = $command->queryAll(); echo '<pre>'; print_r($countries); echo '</pre>';
整個(gè)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>';?>第三步、我們繼續(xù)接著寫,實(shí)驗(yàn)其它經(jīng)常使用的函數(shù)。
(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,查詢標(biāo)量值/計(jì)算值
$command = $connection->createCommand("SELECT count(*) FROM country"); $country = $command->queryScalar(); echo '<pre>'; print_r($country); echo '</pre>';(4)假設(shè)運(yùn)行 SQL 不返回不論什么數(shù)據(jù)可使用命令中的 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); //編譯并運(yùn)行查詢語句 $row = $query->all(); echo '<pre>'; print_r($row); echo '</pre>';
其它函數(shù)如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
轉(zhuǎn)載請注明出處:http://blog.csdn.net/zhyoulun/article/details/40476019
版權(quán)聲明:本文博主原創(chuàng)文章。博客,未經(jīng)同意不得轉(zhuǎn)載。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的Yii Framework2.0开发教程(5)数据库mysql性能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 找呀志_ContentResolver操
- 下一篇: 早安心语阳光正能量简短语录194个