第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > php yii框架怎么连接数据库

php yii框架怎么连接数据库

时间:2022-01-10 17:57:58

相关推荐

php yii框架怎么连接数据库

php框架|YII

连接数据库,yii

php框架-YII

js文件上传插件源码,ubuntu arma9,tomcat 命令行输入,好用 爬虫软件,php修改变量函数,工体seolzw

php yii框架怎么连接数据库

eos源码,ubuntu没有安装引导,tomcat会出现什么故障,重庆爬虫种类,php开发人脸识别,黑猫 seolzw

数据库访问 (DAO)

图书馆 门户网站源码,ubuntu终端怎么删除,最好的tomcat源码解析,孩子不怕爬虫,php版本检测,你认为SEO优化的核心是什么lzw

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: 版本>=.

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, // Oracleusername => oot, //数据库用户名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 => oot, 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, [ ame => Sam, age => 30,])->execute();// INSERT 一次插入多行$connection->createCommand()->batchInsert(user, [ ame, 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教学》

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。