Yii Framework2.0开发教程(5)数据库mysql函数

php中文网
发布: 2016-06-07 15:46:40
原创
1458人浏览过

继续《yii framework2.0开发教程(3)数据库mysql入门》 首先给一些关于yii2数据库支持的介绍 Yii 基于 PHP's PDO建立了一个成熟的数据库访问层。它提供统一的 API 并解决了一些不同 DBMS 产生的使用不利。 Yii 默认支持以下 DBMS : MySQL MariaDB SQLite P

继续《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 格式信息。


微购导购版(原天狼星)
微购导购版(原天狼星)

功能介绍:1.程序独立使用的MVC模式开发,程序代码与模板分离,会HTML就会做程序模板2.使用sqlite数据库,mysql数据库随便换,让您不再为购买数据库而烦恼3.增加首页数据自定义功能,导航数据自定义,快速打造属于您自己的网站4.seo伪静态设置更智能化,自定义seo规则,让蜘蛛更喜欢您的网站5.屏蔽ip访问功能5.支持一键采集功能,只要轻轻一点,上万淘宝b2c商品轻松入库,解决数据添加的

微购导购版(原天狼星) 2
查看详情 微购导购版(原天狼星)

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

<?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 class="brush:php;toolbar:false;">';
print_r($countries);
echo '
登录后复制
';
Yii Framework2.0开发教程(5)数据库mysql函数

整个helloworld.php代码如下

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 class="brush:php;toolbar:false;">';
print_r($countries);
echo '
登录后复制
'; ?>
第三步、我们继续接着写,实验其他常用的函数。

(1)queryOne,返回单行

$command = $connection->createCommand("SELECT * FROM country WHERE code='BR'");
$country = $command->queryOne();
echo '<pre class="brush:php;toolbar:false;">';
print_r($country);
echo '
登录后复制
';Yii Framework2.0开发教程(5)数据库mysql函数

(2)queryColumn,查询多列值

$command = $connection->createCommand("SELECT code FROM country");
$country = $command->queryColumn();
echo '<pre class="brush:php;toolbar:false;">';
print_r($country);
echo '
登录后复制
';Yii Framework2.0开发教程(5)数据库mysql函数


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

$command = $connection->createCommand("SELECT count(*) FROM country");
$country = $command->queryScalar();
echo '<pre class="brush:php;toolbar:false;">';
print_r($country);
echo '
登录后复制
';Yii Framework2.0开发教程(5)数据库mysql函数


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

更新

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

Yii Framework2.0开发教程(5)数据库mysql函数

更新

$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 class="brush:php;toolbar:false;">';
print_r($row);
echo '
登录后复制
';

其他函数如where、groupby、orderby、having等参见http://www.yiichina.com/guide/2/db-query-builder



Yii Framework2.0开发教程(5)数据库mysql函数


参考:

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
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号