YII框架数据库访问

  • 安装Yii
  • Dao数据库访问
  • QueryBuilder器
  • 活动记录
  • 数据库迁移

1.安装YII

Yii2的基本应用程序模板
Yii2的高级应用程序模板

##进入默认下载好basic 目录##
cd basic/

##启动yii服务##
php Yii serve

##test Yii 服务##
http://127.0.0.1:8080/index.php

2.Dao数据访问

Yii Dao 支持大部分主流的数据库;Yii 安装成功之后默认在config\db.config 生产数据库配置文件
##连接单个数据库##
return [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=localhost;dbname=yii2basic',
    'username' => 'root',
    'password' => '',
    'charset' => 'utf8',
];

##连接多个数据库##
'components' => [
        // ...
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=localhost;dbname=example',
            'username' => 'root',
            'password' => '',
            'charset' => 'utf8',
        ],
    ]

获得的数据库连接: db=\Yii:: app->db;

##查询所有数据##
$posts = Yii::$app->db->createCommand('SELECT * FROM post')
            ->queryAll();

##查询一行数据##
$post = Yii::$app->db->createCommand('SELECT * FROM post WHERE id=1')
           ->queryOne();

##查询单列数据##
$titles = Yii::$app->db->createCommand('SELECT title FROM post')
             ->queryColumn();

##查询总数 没有的话返回false##
$count = Yii::$app->db->createCommand('SELECT COUNT(*) FROM post')
             ->queryScalar();

##使用占位符查询, 防sql注入##
$post = Yii::$app->db->createCommand('SELECT * FROM post WHERE id=:id AND status=:status')
           ->bindValue(':id', $_GET['id'])
           ->bindValue(':status', 1)
           ->queryOne();

Yii 打开事务

$db = Yii::$app->db;
##打开事务##
$transaction = $db->beginTransaction();
try {
    $db->createCommand($sql1)->execute();
    $db->createCommand($sql2)->execute();
    // ... executing other SQL statements ...

    ##提交事务##
    $transaction->commit();  

} catch(\Exception $e) {
    ##回滚事务##
    $transaction->rollBack();
    ##返回自定义异常##
    throw $e;
}

待续…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值