01-ThinkPHP基础

 

app:所有的代码都在此目录下,即开发项目的核心目录
config:配置目录,里面有所有的配置文件,包括视图配置,数据库配置,日志配置,路由配置以及整体的app项目配置等
extend:存放第三方方法(支付宝,微信,短信放在此处)
public:公用的,我们的项目会指向这里,所有的框架项目都是用index作为入口文件,该目录是专门对外访问的。在phpstudy配置时要把url指向到\public。
router:路由
runtime:缓存
vendor:核心文件,thinkphp的所有代码都在此处,包括下载的功能代码(用composer安装的所有代码)

在url地址栏访问的时候,要带上public里面的index.php(入口文件),这个入口文件会引入composer的核心文件
执行完了以后会到app目录下面(相当于找到了app目录),因为都是mvc架构,url再下一层目录就不需要再写
controller或者model,直接写它们下面的文件名就行,不需要带后缀,比如controller下的index.php
后面直接引入\index就可以,因为文件名和类名是一一对应的

<?php
namespace app\controller;

use app\BaseController;

//! 2、引入Db门面类
use think\facade\Db;

//! 1、文件名和class名要保持一致
class Index extends BaseController
{
    public function index()
    {
        //! 2.1、必须使用DB::来使用数据库操作
        //! 2.2、查询表名,使用table方法
        //! 2.3、操作数据库,需要多个功能,需要使用链式操作 ->
           $ret = Db::table('oyk_user')->select();

        //! 2.4、把tp返回的数据类型,改为数组

           $array = $ret->toArray();
           print_r($ret);

        //! 2.5、mysql语句增加条件,where方法。条件参数,是可以多种传值方式
           $ret = Db::table('oyk_user')->where('uid=3')->select();

        // !这样传的uid用连接的方式别人可以注入,不安全
           $uid = $_GET['uid'];
           $ret = Db::table('oyk_user')->where('uid'.$uid)->select();
           $ret = Db::table('oyk_user')->where('uid',$uid)->select();

           $ret = Db::table('oyk_user')->where('uid','=',2)->select();
           $ret = Db::table('oyk_user')->where('uid','=',2)->select();与上一行等同
           $ret = Db::table('oyk_user')->where('uid','>',2)->select();
           print_r($ret);

           $ret = Db::table('oyk_user')->where('uid','>',2)->select()->toArray();
           $new = $ret[0];
           echo $new['nickname'];

        //! 2.6、查询单条数据,可以使用find方法,否则必须在后面加入->toArray转换为数组 
           $ret = Db::table('oyk_user')->where('uid',2)->find();
           print_r($ret);

        // !在数据表里面,一行代表一个数组,多行代表二维数组

        //! 2.7、field返回的字段名,返回值是数组
           $ret = Db::table('oyk_user')->field('nickname')->where('uid',2)->find();
           print_r($ret);
        // 由于返回的是数组,所以想要直接显示名字,还需要加键名
           print_r($ret['nickname']);

        // 也可以
        //! 2.8、value返回字段的值
           Db::table('oyk_user')->where('uid',2)->value('nickname');
           echo $ret;

        //! 2.9、返回一列
           $ret = Db::table('oyk_user')->column('nickname');
        // 如果想拿手机号作为下标,则可以在column里面传入第二个值
           $ret = Db::table('oyk_user')->column('nickname','phone');
           print_r($ret);

        // 3、添加数据用insert方法
        //! 3.1、数据,使用数组的方式,key=value
        //! 3.2、md5方法,是php自带的,把字符串进行md5加密,无法解密,非常安全,保护密码
           $data = [
               'nickname' => '小编1',
               'phone' => '18811119999',
               'password' => md5(123456),
               'add_time' => time(),
               'last_time' => time()
           ];
           $ret = Db::table('oyk_user')->insert($data);
           print_r($ret);

        //! 4、updata 修改数据库的数据
           $data = [
               'password' => md5('phpcn'),
               'last_time' => time()
           ];
           $ret = Db::table('oyk_user')->where('uid',19)->update($data);
           print_r($ret);

        //! 5、删除 在程序员中,是不允许删除的,可以更改状态,或者使用其它的字段代替删除功能
           $ret = Db::table('oyk_user')->where('uid',19)->delete();
           print_r($ret);

        //! 6、query方法,参数直接写mysql语句,单引号容易冲突,尽量用双引号
        // mysql原生语句,单引号和双引号自行处理
           $ret = Db::query("SELECT * FROM `oyk_user` WHERE `uid` > 3 AND `uid` < 7");
           print_r($ret);

        //! 7、execute方法,原生mysql操作,添加和修改
           $ret = Db::execute("INSERT INTO `oyk_user` VALUES (null, '小编2', '18811119999', 'e10adc3949ba59abbe56e057f20f883e', 1, 11, 1659283200, '', 1660896721, '127.0.0.1');");
           print_r($ret);

        //! 8、添加多条数据insertAll

           $data =[
               [
                   'nickname' => '小编3',
                   'phone' => '18811113333',
                   'password' => md5(123456),
                   'add_time' => time(),
                   'last_time' => time()
               ],
               [
                   'nickname' => '小编4',
                   'phone' => '18811114444',
                   'password' => md5(123456),
                   'add_time' => time(),
                   'last_time' => time()
               ],
               [
                   'nickname' => '小编5',
                   'phone' => '18811115555',
                   'password' => md5(123456),
                   'add_time' => time(),
                   'last_time' => time()
               ],
           ];

           $ret = Db::table('oyk_user')->insertAll($data);
           print_r($ret);


        //! 9、insertGetId添加数据后,返回自增id
           $data = [
               'nickname' => '小编6',
               'phone' => '18811116666',
               'password' => md5(123456),
               'add_time' => time(),
               'last_time' => time()
           ];

           $ret = Db::table('oyk_user')->insertGetid($data);
           print_r($ret);

           if(empty($ret)){
               echo '失败';
           }else{
               echo '成功';
           }

           $ret = Db::table('oyk_user')
           ->where('uid',20)
           ->delete();
           print_r($ret);


        //! 10、软删除useSoftDelete,数据知识用字段代表删除了,但是还存在数据表中
        // 软删除其实还本质上还是执行的update的操作,虽然使用了delete方法,但其实并没有删除掉
        $ret = Db::table('oyk_user')
               ->where('uid',21)
               ->useSoftDelete('status',2)
               ->delete();
        print_r($ret);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七色的天空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值