• 技术文章 >php框架 >YII

    php yii框架怎么连接数据库

    angryTomangryTom2019-11-04 14:15:58原创1449

    这篇文章主要介绍了PHP的Yii框架中使用数据库的配置和SQL操作实例教程,Yii支持绑定多种数据库,文中主要对各种查询语句在Yii中的使用给出了例子,需要的朋友可以参考下

    php yii框架怎么连接数据库

    数据库访问 (DAO)

    Yii 包含了一个建立在 PHP PDO 之上的数据访问层 (DAO). DAO为不同的数据库提供了一套统一的API. 其中ActiveRecord 提供了数据库与模型(MVC 中的 M,Model) 的交互,QueryBuilder 用于创建动态的查询语句. DAO提供了简单高效的SQL查询,可以用在与数据库交互的各个地方.

    Yii 默认支持以下数据库 (DBMS):

    MySQLMariaDBSQLitePostgreSQLCUBRID: 版本 >= 9.3 . (由于PHP PDO 扩展的一个bug 引用值会无效,所以你需要在 CUBRID的客户端和服务端都使用 9.3 )OracleMSSQL: 版本>=2005.

    1、配置

    开始使用数据库首先需要配置数据库连接组件,通过添加 db 组件到应用配置实现("基础的" Web 应用是 config/web.php),DSN( Data Source Name )是数据源名称,用于指定数据库信息.如下所示:

    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',
        ],
      ],
      // ...
    ];

    2、配置连接组件后可以使用以下语法访问:

    $connection = \Yii::$app->db;

    如果你想通过ODBC连接数据库,则需要配置yii\db\Connection::driverName 属性,例如:

    'db' => [
      'class' => 'yii\db\Connection',
      'driverName' => 'mysql',
      'dsn' => 'odbc:Driver={MySQL};Server=localhost;Database=test',
      'username' => 'root',
      'password' => '',
    ],

    如果不想定义数据库连接为全局应用组件,可以在代码中直接初始化使用:

    $connection = new \yii\db\Connection([
      'dsn' => $dsn,
       'username' => $username,
       'password' => $password,
    ]);
    $connection->open();

    3、如果在创建了连接后需要执行额外的 SQL 查询,可以添加以下代码到应用配置文件:

    return [
      // ...
      'components' => [
        // ...
        'db' => [
          'class' => 'yii\db\Connection',
          // ...
          'on afterOpen' => function($event) {
            $event->sender->createCommand("SET time_zone = 'UTC'")->execute();
          }
        ],
      ],
      // ...
    ];

    如果执行 SQL 不返回任何数据可使用命令中的 execute 方法:

    $command = $connection->createCommand('UPDATE post SET status=1 WHERE id=1');
    $command->execute();

    你可以使用insert,update,delete 方法,这些方法会根据参数生成合适的SQL并执行.

    // INSERT
    $connection->createCommand()->insert('user', [
      'name' => 'Sam',
      'age' => 30,
    ])->execute();
    // INSERT 一次插入多行
    $connection->createCommand()->batchInsert('user', ['name', 'age'], [
      ['Tom', 30],
      ['Jane', 20],
      ['Linda', 25],
    ])->execute();
    // UPDATE
    $connection->createCommand()->update('user', ['status' => 1], 'age > 30')->execute();
    // DELETE
    $connection->createCommand()->delete('user', 'status = 0')->execute();

    推荐:《YII教程

    以上就是php yii框架怎么连接数据库的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:连接数据库 yii
    上一篇:yii和laravel区别 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • Yii2.0 数据库操作增删改查详解• Yii::app()是什么意思• yii gii是什么• yii和laravel区别
    1/1

    PHP中文网