찾다
백엔드 개발PHP 튜토리얼 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;
?>

外部引入的数据库链接文件和配置

<?php return 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

<?php class 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>


用户名: 密码:
  • ID 用户名 IP 删除 编辑

  • edit.html

    
    
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title><!--{$title}--></title>
    
    
    
    用户名:
    密码:
    ip:
    创建时间:


    성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    华为GT3 Pro和GT4的差异是什么?华为GT3 Pro和GT4的差异是什么?Dec 29, 2023 pm 02:27 PM

    许多用户在选择智能手表的时候都会选择的华为的品牌,其中华为GT3pro和GT4都是非常热门的选择,不少用户都很好奇华为GT3pro和GT4有什么区别,下面就就给大家介绍一下二者。华为GT3pro和GT4有什么区别一、外观GT4:46mm和41mm,材质是玻璃表镜+不锈钢机身+高分纤维后壳。GT3pro:46.6mm和42.9mm,材质是蓝宝石玻璃表镜+钛金属机身/陶瓷机身+陶瓷后壳二、健康GT4:采用最新的华为Truseen5.5+算法,结果会更加的精准。GT3pro:多了ECG心电图和血管及安

    php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

    php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

    修复:截图工具在 Windows 11 中不起作用修复:截图工具在 Windows 11 中不起作用Aug 24, 2023 am 09:48 AM

    为什么截图工具在Windows11上不起作用了解问题的根本原因有助于找到正确的解决方案。以下是截图工具可能无法正常工作的主要原因:对焦助手已打开:这可以防止截图工具打开。应用程序损坏:如果截图工具在启动时崩溃,则可能已损坏。过时的图形驱动程序:不兼容的驱动程序可能会干扰截图工具。来自其他应用程序的干扰:其他正在运行的应用程序可能与截图工具冲突。证书已过期:升级过程中的错误可能会导致此issu简单的解决方案这些适合大多数用户,不需要任何特殊的技术知识。1.更新窗口和Microsoft应用商店应用程

    php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

    php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

    php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

    判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

    php怎么查找字符串是第几位php怎么查找字符串是第几位Apr 22, 2022 pm 06:48 PM

    查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。

    php怎么设置implode没有分隔符php怎么设置implode没有分隔符Apr 18, 2022 pm 05:39 PM

    在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。

    php怎么判断有没有小数点php怎么判断有没有小数点Apr 20, 2022 pm 08:12 PM

    php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

    See all articles

    핫 AI 도구

    Undresser.AI Undress

    Undresser.AI Undress

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

    AI Clothes Remover

    AI Clothes Remover

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

    Undress AI Tool

    Undress AI Tool

    무료로 이미지를 벗다

    Clothoff.io

    Clothoff.io

    AI 옷 제거제

    AI Hentai Generator

    AI Hentai Generator

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

    뜨거운 도구

    ZendStudio 13.5.1 맥

    ZendStudio 13.5.1 맥

    강력한 PHP 통합 개발 환경

    SublimeText3 Linux 새 버전

    SublimeText3 Linux 새 버전

    SublimeText3 Linux 최신 버전

    맨티스BT

    맨티스BT

    Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

    Atom Editor Mac 버전 다운로드

    Atom Editor Mac 버전 다운로드

    가장 인기 있는 오픈 소스 편집기

    mPDF

    mPDF

    mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.