ThinkPHP学习札记(八)一个用户增删改查的小例子
ThinkPHP学习笔记(八)一个用户增删改查的小例子
主要是action文件的方法实现:
conf文件
<?php $selfConfig = array(//更换模式最好删除一些~app.php和~runtime.php//'配置项'=>'配置值'//因为开启URL重新不论是被重写的还是没被重写的,都可以通过原有路径访问//如果想开启rewrite模式,需要做如下操作//1.query服务器已经开启了Apache的rewrite模块// LoadModule rewrite_module modules/mod_rewrite.so//2.在与主入口文件,统计目录下,新建一个.htaccess(vi:save .htaccess;记事本:".htaccess")//如果选用模式2(rewrite)会加大服务器的消耗'URL_MODEL'=>1,'URL_PATNINFO_MODEL'=>2,//pathinfo包含两类 //1普通模式:加上m和a:顺序关系可以发生变化 //http://localhost/MyThinkPHP/admin.php/m/index/a/index //传值 //http://localhost/MyThinkPHP/admin.php/m/index/a/index/username/zhangsan/password/password //2智能识别模块操作(默认模式就是智能识别) //http://localhost/MyThinkPHP/admin.php/index/index //传值 //http://localhost/MyThinkPHP/admin.php/index/index/username/zhangsan/password/password //修改URL分隔符//'URL_PATHINFO_DEPR'=>'-',//修改模板左右定界符'TMPL_L_DELIM'=>'<!--{','TMPL_R_DELIM'=>'}-->',//********************************非常华丽的分割线**************************************//开启调试模式//1.模拟linux系统来识别大小写//2.方法名的大小写与模板文件大小写有关//注意:在分帧页面中,不能有body,但是app_dubug的信息是属于body体中的内容'APP_DEBUG'=>true,//可以自定义页面的Trace信息//配置文件路径的Trace信息配置在Thinkphp/Tpl下的pageTrace.tpl.php//自定义方式://'TMPL_TRACE_FILE'=>APP_PATH.'/Public/trace.php',//或者自定义个trace.php页面放入当前的Conf文件夹中//默认调试文件的位置://ThinkPHP/Common/debug.php//不缓存数据库字段;如果开启,再修改可以将Runtim/Data下面的文件进行删除//'DB_FIELDS_CACHE'=> false,//可以自定义的debug.php放入当前的Conf文件夹中//先将APP_DEBUG设置为false然后在加入下面参数//'APP_DEBUG'=>false,//显示运行次此页面需要的时间//'SHOW_RUN_TIME'=>true,//显示详细的运行时间(基于SHOW_RUN_TIME)//'SHOW_ADV_TIME'=>true,//显示数据库的操作次数(基于SHOW_RUN_TIME)//'SHOW_DB_TIMES'=>true,//显示缓存的操作次数(基于SHOW_RUN_TIME)//'SHOW_CACHE_TIMES'=>true,//显示内存的开销(基于SHOW_RUN_TIME)//'SHOW_USE_MEM'=>true,//设置模板//'DEFAULT_THEME'=>'default',//日志处理log类:lib/Think/Core/log.class.php//开启日志//'LOG_RECORD'=>true,//日志处理log类:lib/Think/Core/log.class.php中有处理级别,可以选择性的加入//'LOG_RECORD_LEVEL'=>array('EMERG','ALERT'),//由于数据库的链接需要多个项目来使用可以在一个页面中定义个公共的配置项,返回一个array数组//连接数据库设置//'DB_TYPE'=>'mysql',//'DB_HOST'=>'localhost',//'DB_NAME'=>'hibernate',//'DB_USER'=>'root',//'DB_PWD'=>'root',////如果未修改可以不用填写//'DB_POST'=>'3306',//'DB_PREFIX'=>'tb_',//令牌相关操作//'TOKEN_ON'=>true,//'TOKEN_NAME'=>'__hash__',//'TOKEN_TYPE'=>'md5',);$databaseConfig = include './database.php';//连接返回之后并不好用,只能直接返回自定义的配置信息,可能是我的配置有问题,先留下这个问题return array_merge($selfConfig,$databaseConfig);//return $selfConfig;?>
外部引入的数据库链接文件和配置
<?phpreturn array(//链接数据库的方式:见DatabaseAction.class.php//主从数据库的配置(Common/convention.php)//1.开启数据库的分布式// 'DB_DEPLOY_TYPE'=> 1, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)//2.必须要做数据库服务器中进行相应的配置//百度设置数据库集群//3.读写分离(默认是第一台服务器是写入服务器,其他的服务器的读服务器)// 'DB_RW_SEPARATE'=> true,// 数据库读写是否分离 主从式有效//ThinkPHP默认的字符集是utf8,不要加中划线- // 'DB_FIELDTYPE_CHECK'=> false, // 是否进行字段类型检查// 'DB_FIELDS_CACHE' => true, // 启用字段缓存// 'DB_CHARSET' => 'utf8',// 数据库编码默认采用utf8 //由于数据库的链接需要多个项目来使用可以在一个页面中定义个公共的配置项,返回一个array数组//ThinkPHP中的db目录:Lib/Think/Db/Db.class.php//连接数据库设置'DB_TYPE'=>'mysql','DB_HOST'=>'localhost',//设置主从数据时用//'DB_HOST'=>'localhost,192.168.123.1','DB_NAME'=>'thinkphp',//设置主从数据时若名字不同//'DB_NAME'=>'hibernate,ant,thinkphp','DB_USER'=>'root','DB_PWD'=>'root',//如果未修改可以不用填写'DB_POST'=>'3306','DB_PREFIX'=>'tb_',);?>
action
<?phpclass UserdbAction extends Action{ public function index(){ $user=M('User'); $list=$user->select(); $this->assign('title','thinkphp演示'); $this->assign('alist',$list); $this->display(); } public function add(){ //D是需要些Model的,M不需要写 $user=D('User'); if ($vo=$user->create()){ echo 'create成功'; $user->password=md5($user->password); $user->createtime=time(); //扩展函数需要进加载之后使用 load('extend'); $user->createip=get_client_ip(); if ($user->add()){ $this->success("用户注册成功"); }else{ $this->error($user->getError()); } }else{ echo 'create失败'; $this->error($user->getError()); } } public function del(){ //D是需要些Model的,M不需要写 $user=D('User'); if ($vo=$user->delete($_GET['id'])){ $this->success("用户删除成功"); }else{ $this->error($user->getError()); } } public function edit(){ $user=M('user'); $id=$_GET['id']; $list=$user->where("id=$id")->find(); $this->assign('user',$list); $this->assign('title','编辑用户'); $this->display(); } public function update(){ $user=M('user'); if ($vo=$user->create()){ if ($lineNum=$user->save()){ $this->success("用户更新成功"); }else{ $this->error($user->getError()); } }else{ $this->error($user->getError()); } }}?>
model
<?php class UserModel extends Model{ function modelTest(){ echo '测试的跨模型操作,调用模型中的方法'; } }?>
html:
index.html
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title><!--{$title}--></title>
edit.html
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title><!--{$title}--></title>

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

숙련된 PHP 개발자라면 이미 그런 일을 해왔다는 느낌을 받을 것입니다. 귀하는 상당한 수의 애플리케이션을 개발하고, 수백만 줄의 코드를 디버깅하고, 여러 스크립트를 수정하여 작업을 수행했습니다.

이 튜토리얼은 PHP를 사용하여 XML 문서를 효율적으로 처리하는 방법을 보여줍니다. XML (Extensible Markup Language)은 인간의 가독성과 기계 구문 분석을 위해 설계된 다목적 텍스트 기반 마크 업 언어입니다. 일반적으로 데이터 저장 AN에 사용됩니다

JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

문자열은 문자, 숫자 및 기호를 포함하여 일련의 문자입니다. 이 튜토리얼은 다른 방법을 사용하여 PHP의 주어진 문자열의 모음 수를 계산하는 방법을 배웁니다. 영어의 모음은 A, E, I, O, U이며 대문자 또는 소문자 일 수 있습니다. 모음이란 무엇입니까? 모음은 특정 발음을 나타내는 알파벳 문자입니다. 대문자와 소문자를 포함하여 영어에는 5 개의 모음이 있습니다. a, e, i, o, u 예 1 입력 : String = "Tutorialspoint" 출력 : 6 설명하다 문자열의 "Tutorialspoint"의 모음은 u, o, i, a, o, i입니다. 총 6 개의 위안이 있습니다

정적 바인딩 (정적 : :)는 PHP에서 늦은 정적 바인딩 (LSB)을 구현하여 클래스를 정의하는 대신 정적 컨텍스트에서 호출 클래스를 참조 할 수 있습니다. 1) 구문 분석 프로세스는 런타임에 수행됩니다. 2) 상속 관계에서 통화 클래스를 찾아보십시오. 3) 성능 오버 헤드를 가져올 수 있습니다.

PHP의 마법 방법은 무엇입니까? PHP의 마법 방법은 다음과 같습니다. 1. \ _ \ _ Construct, 객체를 초기화하는 데 사용됩니다. 2. \ _ \ _ 파괴, 자원을 정리하는 데 사용됩니다. 3. \ _ \ _ 호출, 존재하지 않는 메소드 호출을 처리하십시오. 4. \ _ \ _ get, 동적 속성 액세스를 구현하십시오. 5. \ _ \ _ Set, 동적 속성 설정을 구현하십시오. 이러한 방법은 특정 상황에서 자동으로 호출되어 코드 유연성과 효율성을 향상시킵니다.
