zoukankan      html  css  js  c++  java
  • 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:phpStudyWWWyiiconfigdb.php

    
    return [
        'class' => 'yiidbConnection',
        '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:phpStudyWWWyiicontrollersHomeController.php

    <?php
    /**
     * Created by Haima.
     * Author:Haima
     * QQ:228654416
     * Date: 2018/9/3
     * Time: 10:30
     */
    
    namespace appcontrollers;
    
    use appmodelsArticle;
    use yiiaseController;
    
    class HomeController extends Controller
    {
        //用属性的方法定义父模板
        //会自动加载D:phpStudyWWWyiiviewslayoutshome.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:phpStudyWWWyiiviewslayoutshome.php
            return $this->render('index');
        }   
    }
    

    创建models

    D:phpStudyWWWyiimodelsArticle.php

    <?php
    namespace appmodels;
    
    use yiidbActiveRecord;
    
    class Article extends ActiveRecord
    {
    
    }
    

    访问效果:

    http://yii.com/?r=home/index&article_id=4

    [Haima的博客] http://www.cnblogs.com/haima/
  • 相关阅读:
    MySQL DATE_SUB和SUBDATE函数:日期减法运算
    stream将list转化为map
    HackLab-脚本1
    隐写术-2
    Bug-变量
    Bug-you must stop it
    Bug-域名解析
    Bug-web3
    Bug-矛盾
    Bug-web基础$_POST 30
  • 原文地址:https://www.cnblogs.com/haima/p/9577981.html
Copyright © 2011-2022 走看看