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教程》

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/107420.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
BigDecimal 的空安全 Comparator 实现教程
上一篇 2025年11月22日 14:51:59
怎么做淘宝上新链接_淘宝新品上架链接创建与发布
下一篇 2025年11月22日 14:55:02

相关推荐

发表回复

登录后才能评论
关注微信