• yii2.0操作数据库


    首先不得不说yii2.0面向对象的比较彻底,建议没学过或者没学好面向对象的同学再看看面向对象。

    其次切入正题。

    先创建数据库,这步自己写。

    DROP TABLE IF EXISTS `country`;
    CREATE TABLE IF NOT EXISTS `country` (
    `code` char(2) NOT NULL,
    `name` char(52) NOT NULL,
    `population` int(11) NOT NULL DEFAULT '0',
    PRIMARY KEY (`code`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    --
    -- 转存表中的数据 `country`
    --

    INSERT INTO `country` (`code`, `name`, `population`) VALUES
    ('AU', 'Australia', 18886000),
    ('BR', 'Brazil', 170115000),
    ('CA', 'Canada', 1147000),
    ('CN', 'China', 1277558000),
    ('DE', 'Germany', 82164700),
    ('FR', 'France', 59225700),
    ('GB', 'United Kingdom', 59623400),
    ('IN', 'India', 1013662000),
    ('RU', 'Russia', 146934000),
    ('US', 'United States', 278357000);

    第一步,配置config中的db文件相关属性,

    <?php

    return [
    'class' => 'yiidbConnection',
    'dsn' => 'mysql:host=localhost;dbname=digpage',
    'username' => 'root',
    'password' => '1111',
    'charset' => 'utf8',
    ];

    (我用的数据库是digpage,账户密码是root  1111)

    第二步,配置好config中的db后,在models里面创建一个Country.php

    在里面写上

    <?php

    namespace appmodels;

    use yiidbActiveRecord;//类似C++中的声明,必写

    class Country extends ActiveRecord//继承至ActiveRecord类
    {

      //如果模型的命名和表的命名一致时,yii2.0会自动依靠模型命去猜测表名。

      //如果不一样就需要写上下面的话

      /*

      public static function tableName(){

        return '表名';

      }

      */

    }

    第三步,在Controller中创建控制器CountryController.php

    在里面写下如下代码

    <?php

    namespace appcontrollers;

    use yiiwebController;

    use yiidataPagination;

    use appmodelsCountry;

    class CountryController extends Controller
    {
    public function actionIndex()
    {
    $query = Country::find();//查询数据库中,类似select * from ...    也可以这样写  $query=Country::findBySql('SELECT * FROM ...')

    $pagination = new Pagination([
    'defaultPageSize' => 5,
    'totalCount' => $query->count(),
    ]);

    $countries = $query->orderBy('population')
    ->offset($pagination->offset)
    ->limit($pagination->limit)
    ->all();

    return $this->render('index', [
    'countries' => $countries,
    'pagination' => $pagination,
    ]);
    }
    }

    第四步,创建视图

    建一个county文件夹,文件夹内建一个index.php

    内容

    <?php
    use yiihelpersHtml;
    use yiiwidgetsLinkPager;
    ?>
    <h1>Countries</h1>
    <ul>
    <?php foreach ($countries as $country): ?>
    <li>
    <?= Html::encode("{$country->name} ({$country->code})") ?>:
    <?= $country->population ?>
    </li>
    <?php endforeach; ?>
    </ul>

    <?= LinkPager::widget(['pagination' => $pagination]) ?>//换行用的

    第五步,到浏览器中访问。

    结束,不懂留言我来解答。

  • 相关阅读:
    利用burpsuite实现重放攻击
    木马分析(隐藏分析)实验
    使用wireshark分析TLS
    ECharts折线图循环展示数据、自定义色值(渐变)
    Sumblime Text3格式化代码
    ECharts柱状图彩色柱状图(渐变),自定义鼠标移入小圈颜色、鼠标移入后提示框显示不全问题、渲染到页面中
    C#多线程学习(五) 多线程的自动管理(定时器)
    SQL取出 所有周六 周日的日期
    C#多线程学习(二) 如何操纵一个线程
    简单读写XML文件
  • 原文地址:https://www.cnblogs.com/xiaocongjiejie/p/4662138.html
Copyright © 2020-2023  润新知