14-15.Yii2.0模型的创建/读取数据使用,框架防止sql注入
目录
创建数据库 表article
1.创建库表
CREATE TABLE `article` (
`article_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'article_id',
`article_title` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`article_id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
2.添加几条数据供测试用

配置 db.php 连接数据库
D:\phpStudy\WWW\yii\config\db.php
return [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=114.67.230.000;dbname=yii',
'username' => 'root',
'password' => '000000',
'charset' => 'utf8',
// Schema cache options (for production environment)
//'enableSchemaCache' => true,
//'schemaCacheDuration' => 60,
//'schemaCache' => 'cache',
];
创建控制器 HomeController.php
D:\phpStudy\WWW\yii\controllers\HomeController.php
<?php
/**
* Created by Haima.
* Author:Haima
* QQ:228654416
* Date: 2018/9/3
* Time: 10:30
*/
namespace app\controllers;
use app\models\Article;
use yii\base\Controller;
class HomeController extends Controller
{
//用属性的方法定义父模板
//会自动加载D:\phpStudy\WWW\yii\views\layouts\home.php文件
public $layout = 'home';
public function actionIndex()
{
$request = \Yii::$app->request;
// 方法一:普通的查询方式(会有SQL注入的危险)
// $article_id = $request->get('article_id',1);
// $sql = 'select * from article where article_id =' . $article_id;
// $article = Article::findBySql($sql)->all();
// 方法二:预处理,防SQL注入
$article_id = $request->get('article_id', 1);
$sql = "select * from article where article_id = :article_id"; //预处理,防SQL注入 :article_id占位符
$article = Article::findBySql($sql, [':article_id' => $article_id])->all();
dump($article);die;
//会自动加载父模板 D:\phpStudy\WWW\yii\views\layouts\home.php
return $this->render('index');
}
}
创建models
D:\phpStudy\WWW\yii\models\Article.php
<?php
namespace app\models;
use yii\db\ActiveRecord;
class Article extends ActiveRecord
{
}
访问效果:

14-15.Yii2.0模型的创建/读取数据使用,框架防止sql注入的更多相关文章
- [MISS静IOS开发原创文摘]-AppDelegate存储全局变量和 NSUserDefaults standardUserDefaults 通过模型保存和读取数据,存储自定义的对象
由于app开发的需求,需要从api接口获得json格式数据并保存临时的 app的主题颜色 和 相关url 方案有很多种: 1, 通过AppDelegate保存为全局变量,再获取 2,使用NSUSerD ...
- yii2.0使用ActionForm创建表单
文本框:textInput(); 密码框:passwordInput(); 单选框:radio(),radioList(); 复选框:checkbox(),checkboxList(); 下拉框:dr ...
- YII2.0 用GII创建视图文件后访问404
使用GII的CRUD Generator创建searchModelClass 和控制器类文件,视图文件后,访问控制器地址后出现404的情况. 创建过程如图所示 后来发现是控制器类 Controller ...
- 15.Yii2.0框架where单表查询
目录 新建控制器 HomeController.php 新建model article.php 新建控制器 HomeController.php D:\xampp\htdocs\yii\control ...
- Yii2.0中文开发向导——删除数据
直接 model 删除 $model = User::find($id); $model->delete(); 带有条件的删除 $connection ->createCommand() ...
- mongoDB3.0版本使用express读取数据
使用express连接数据库操作 var express = require('express'); var app = express(); var MongoClient = require('m ...
- yii2.0在model里自定义数据表
无需多言,直接撸代码 class Zhuanjia extends \yii\db\ActiveRecord { public static function tableName() { return ...
- Mybatis3.0防止SQL注入
一.什么是SQL注入 引用搜狗百科: SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如很多影视网站泄露VIP会员密码大 ...
- netty源码解解析(4.0)-14 Channel NIO实现:读取数据
本章分析Nio Channel的数据读取功能的实现. Channel读取数据需要Channel和ChannelHandler配合使用,netty设计数据读取功能包括三个要素:Channel, Eve ...
随机推荐
- js 创建方法
贴个代码先: function O(user,pwd){ //use constructor this.user=user; this.pwd=pwd; this.get=get; return th ...
- codeforcesRound378C-dfs+树状数组
分成K个块,每个块内部dfs解决,然后用树状数组统计第i个元素前面有多少怪物已经消失,来计算当前的下标 #include<bits/stdc++.h> #define inf 0x3f3f ...
- php数组生成树结构数据返回
现在有这样一个数组,要求按照树结构返回(当pid=0就表示其为菜单id,否则pid的值就是其属于某个菜单id下面): $array = array( 1 => array ('id' => ...
- RabbitMQ使用教程(二)RabbitMQ用户管理,角色管理及权限设置
上一篇博客 RabbitMQ使用教程(一)RabbitMQ环境安装配置及Hello World示例 中,我们成功的安装好了RabbitMQ环境,并通过一个Java客户端示例了解了用生产者来发布消息,用 ...
- Joda-Time简介
Joda-Time提供了一组Java类包用于处理包括ISO8601标准在内的date和time.可以利用它把JDK Date和Calendar类完全替换掉,而且仍然能够提供很好的集成. Joda-Ti ...
- java 多线程死锁
死锁案例: package com.test; public class DealThread implements Runnable { public String username; public ...
- cf1027F. Session in BSU(并查集 匈牙利)
题意 题目链接 $n$个人,每个人可以在第$a_i$天或第$b_i$,一天最多考一场试,问在最优的情况下,最晚什么时候结束 Sol 自己只能想到暴力匈牙利二分图匹配,然而还是被构造数据卡了.. 标算很 ...
- 想系统化快速学习人工智能?上Azure School就够了!
要说目前最热门的技术,非人工智能莫属了,让计算机程序能够看懂.听懂.读懂.理解我们的世界!想想就激动!! 上至高大上的个人数字化助理,下至P图软件,各种应用都开始增加AI相关的功能,试问又有哪个技术爱 ...
- winform ListView创建columnHeader的方法
using System; using System.Windows.Forms; using System.Drawing; using System.Collections; namespace ...
- java代码关闭tomcat程序
1.通过java代码实现tomcat的关闭 2.tomcatStop.java package test; import java.io.BufferedReader; import java.io. ...