在Yii中直接使用sql,是建立在php扩展PDO的基础之上。(使用前,确保PDO已安装)
一、建立连接
$connection = Yii::app()->db;
其中db是在../config/main.php中配置的
二、使用sql
1,查询——query
方式一:最简洁
$sql = "select a.id,b.name,parts_type,parts_model,partManufacturer,number,confirm_ok_num,confirm_bad_num from fail_parts a, idc b where a.idc_id = b.id and a.status_id != 731 and confirm_bad_num != 0 order by b.name;";
//可以写成
//$connection = Yii::app()->db;
//$command = $connection->createCommand($sql)
$command = Yii::app()->db->createCommand($sql);
$rows = $command->queryAll(); //结果数组,多行的内容
var_dump($rows);
foreach($rows as $row){
var_dump($row);//一行的内容
}
方式二:主要区别在查询动作。
可拆分为两步
$dataReader = $command->query();
while(($row = $dataReader->read()) !== false){
var_dump($row);//一行的内容
}
2,创建、更新和删除——execute
$rowCount = $command->execute(); //执行
三、query的高级用法
$row = $command->queryRow(); //取多列结果中的第一列
$column = $command->queryColumn(); //取多列结果中第一行的第一列
$value = $command->queryScalar(); //取多列结果中第一行的第一字段
四、使用事务
$trans = $connection->beginTransaction();
//$trans = Yii::app()->db->beginTransaction();
try{
$connection->createCommand($sql1)->execute();
$connection->createCommand($sql2)->execute();
...
$trans->commit();
} catch (Exception $e) {
$trans->rollBack();
}
如果您觉得本文的内容对您的学习有所帮助,您可以微信:
分享到:
相关推荐
在配置文件中设置`enableCsrfValidation`和`enableCookieValidation`为`true`,并在表单中使用`CHtml::form`,以确保每个请求都携带有效的CSRF令牌和经过HMAC验证的Cookie值。 综上所述,Yii框架提供了多种内置机制...
- 使用PHP代码直接在视图中编写,增强了视图的动态性。 7. **URL管理**: - Yii的URL管理器可以生成和解析友好的URL,支持RESTful风格的路由。 8. **扩展和第三方库集成**: - Yii社区提供了大量预构建的扩展,...
本文将详细探讨如何在 Yii2 命令行环境中使用 migration 来实现数据库的备份与还原。 首先,我们需要了解什么是 `migration`。在软件开发过程中,随着应用需求的变化,数据库结构可能需要进行调整。Migration 就是...
在Yii中,Model负责处理数据和业务逻辑,View负责展示数据,而Controller则协调Model和View,处理用户请求并生成响应。 类结构是Yii框架的核心部分。框架的每个组件都是一个类,这些类通常继承自Yii的基类,例如...
在Yii2框架中,Model代表业务数据和业务规则,它通常与数据库中的表对应。View负责展示数据,而Controller处理用户请求并协调Model和View之间的交互。Yii2的MVC设计模式使得代码结构清晰,易于维护。 Yii2框架的I18...
5. 安全性:Yii框架注重安全性,提供了多种内置的防护机制来防止常见的安全问题,比如SQL注入、XSS攻击等。 6. 灵活的MVC支持:Yii框架提供了完全按照MVC设计模式组织的应用结构,确保了开发的模块化和代码的高内聚...
其次,Yii也支持直接的SQL查询,这在处理复杂查询或者优化性能时非常有用。`yii\db\Query`类提供了构建SQL查询的能力,而`yii\db\Command`类则负责执行这些查询。例如,获取`User`表中所有邮箱以`@example.com`结尾...
在Advanced Template中,无需Composer安装意味着已经包含了所有依赖项,可以直接使用,这对于那些没有Composer环境或者不熟悉Composer的开发者来说非常方便。Composer是PHP的依赖管理工具,通常用于安装和管理项目所...
在Yii2中,可以使用内置的验证规则(如`yii\base\Model::rules()`)来验证用户输入,比如邮箱和密码的格式。密码通常会用哈希算法(如Bcrypt或Argon2)进行加密存储,以提高安全性。 3. **登录功能**:登录过程包括...
在微服务架构中,为了保持服务之间的解耦,我们通常会使用API Gateway或者直接的RESTful接口进行服务间的通信。在PHP+YII的环境中,你可以使用YII的`yii\web/rest\Controller`来创建RESTful API,暴露数据库服务。...
Yii2 是一款高效、灵活且全面的PHP开发框架,它为构建现代Web应用程序提供了强大...在使用Yii2 开发时,无需依赖Composer安装,直接下载后即可进行修改和使用,这对于初学者和经验丰富的开发者来说都是一种便捷的选择。
你可以直接通过对象属性来操作数据库记录,无需编写复杂的SQL语句。同时,Yii还支持数据访问对象(DAO)方式,为更复杂的数据操作提供了灵活性。 六、表单处理 Yii提供了强大的表单处理功能,包括自动验证和错误...
最后,虽然 yiidebugtb 的使用在开发和测试阶段非常有用,但它可能包含敏感信息,并且在用户面前暴露数据库查询信息可能会引发安全问题。因此,建议在生产环境中禁用调试模式,并且不要将调试工具栏暴露给非授权用户...
DAO 提供了 SQL 语句的执行和结果处理,而 ActiveRecord 是一种对象关系映射技术,可以直接通过对象属性和方法操作数据库记录,简化了数据库操作。 五、ActiveRecord ActiveRecord 将数据库表映射为 PHP 类,每个类...
在Yii中,你可以找到`yii\base\Model`、`yii\web\View`和`yii\base\Controller`等基类,它们提供了MVC模式的基础实现。 2. **数据库操作**:Yii通过`yii\db\ActiveRecord`提供了Active Record模式,使得数据库操作...
3. 数据库支持:Yii支持多种数据库,包括MySQL、PostgreSQL、SQLite等,且提供查询构造器和SQL语句的直接执行,方便进行复杂的数据库操作。 4. I18N和L10N:Yii内置了强大的国际化和本地化功能,支持多语言环境,...
在开发过程中,你还可以利用Yii2.0的Gii工具快速生成模型、控制器和视图代码,减少重复工作。同时,框架支持Composer插件,可以方便地添加和管理第三方库,扩展应用功能。 总之,Yii2.0高级应用模板是一个强大且...
在该开源项目中,我们可以从以下几个方面学习和了解Yii框架的应用: 1. MVC架构:Yii的MVC设计模式使得代码结构清晰,易于维护。模型负责数据处理,视图负责展示,控制器则协调模型和视图,确保它们协同工作。 2. ...
- 重用行为:将通用的行为定义在基类中供其他类使用。 - **测试驱动开发**:编写单元测试和功能测试,确保代码质量。 - 单元测试:针对模型类等独立单元进行测试。 - 功能测试:模拟用户操作流程,测试整体功能...
在实践中,为了方便地使用Yii中的数据库操作,可以通过配置管理器来配置数据库组件,如下所示: ```php return array( 'components' => array( 'db' => array( 'class' => 'CDbConnection', 'connectionString'...