php yii框架怎么连接数据库

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

php yii框架怎么连接数据库

php yii框架怎么连接数据库

数据库访问 (DAO)

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

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

立即学习PHP免费学习笔记(深入)”;

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' => 'yiidbConnection',       '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连接数据库,则需要配置yiidbConnection::driverName 属性,例如:

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

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

$connection = new yiidbConnection([   'dsn' => $dsn,    'username' => $username,    'password' => $password, ]); $connection->open();

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

return [   // ...   'components' => [     // ...     'db' => [       'class' => 'yiidbConnection',       // ...       '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教程

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享