yii mysql函数_Yii Framework2.0开发教程(5)数据库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 格式信息。

在我们的例子中给出的配置文件是

//配置的数据库连接可以在应用中通过 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 '

';

print_r($countries);

echo '

';

5a9cbd903b4fbafadc9e0e5586eb7c60.png

整个helloworld.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 '

';

print_r($countries);

echo '

';

?>

第三步、我们继续接着写,实验其他常用的函数。

(1)queryOne,返回单行

$command = $connection->createCommand("SELECT * FROM country WHERE code='BR'");

$country = $command->queryOne();

echo '

';

print_r($country);

echo '

';

869f4ab1bf236d39708898d4a5c32494.png

(2)queryColumn,查询多列值

$command = $connection->createCommand("SELECT code FROM country");

$country = $command->queryColumn();

echo '

';

print_r($country);

echo '

';

dcb49ac7327d935455899d497e6c14e9.png

(3)queryScalar,查询标量值/计算值

$command = $connection->createCommand("SELECT count(*) FROM country");

$country = $command->queryScalar();

echo '

';

print_r($country);

echo '

';

90cb7a1182a6c18ddcd6990ca3e05656.png

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

更新

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

$command->execute();

4a98abf0e59c181d3b22e0d172b1effb.png

更新

$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 '

';

print_r($row);

echo '

';

fe62fc975bbb4f0792184610c9210951.png

参考:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值