ThinkPHP数据库访问CRUD;__SELF__和__ACTION__的区别;自动收集表单:$n->create();
一、tp框架数据访问(pdo基础)
public function test()
{
$n = D("Nation");
//select();find(); //查询
1.$attr = $n->select();//查所有,返回一个关联数组,二维关联数组
2.$attr = $n->select("n001,n002");//根据参数(主键值)查
3.$attr = $n->find("n002");//查一条数据,一维数组,参数必须是主键值
//where //连贯操作
4.$n->where()->select();//加条件,$n->where()返回一个对象
$n->where("name=>'汉族' or name='回族'")->select();
5.table //如果查Nation表以外的数据,用table
$attr = $n->table("info")->select();
6.field //指定字段查询(查某几列)
$attr = $n->field("code")->select();
7.order //排序
$attr = $n->order("code desc")->select();
8.limit //分页
$a = $n->limit(3,5)->select();//跳过3条数据取5条数据
$a = $n->limit(3)->select();//取3条数据
9.page //分页
$a = $n->page(3,5)->select();//第3页显示5条数据,根据条数来自动分页
10.group //分组
$a = $nation->field("Brand,avg(Price)")->group("Brand")->select();
11.having //分完组加条件
$a = $nation->field("Brand,avg(Price)")->group("Brand")->having("avg(Price)>40")->select();
12.distinct //去重
$a = $nation->field("Brand")->distinct(true)->select();
13.getField //获取某字段的数据,只能给列名查询,不写where条件,默认给索引最小的字段
$a = $nation->where("code='n001'")->getField("name");
14.sum,count,max,min
$a = $nation->table("car")->sum(Price);
15.join..on //给索要查询的列都 as 给一个别名显示,别名自定义即可
$a = $nation->field("Info.code as 'code',Info.name as 'name',Nation.name as '民族'")->join("Info on Info.nation=Nation.code")->select();
16.cache //数据缓存
17.query //原生sql语句查询
$sql = "select * from nation";
$a = $nation->query($sql);
18.execute //原生sql语句其他操作 修改
$sql = "update Nation set name='满族' where code='n001'";
$a = $nation->execute($sql);
var_dump($a);
}
二、数据添加
<?php
namespace Zuoye\Controller;
use Think\Controller;
class MainController extends Controller
{
public function test()
{
//造模型对象
$n = D("Nation");
//使用数组的方式添加
$attr = array("Code"=>"n100","Name"=>"汉族");
$n->add($attr);
//使用AR的方式
$n->Code="n099";
$n->Name="回族";
$n->add();
}
public function _empty()
{
echo "连接失败!";
}
}
三、通过地址栏传参数,如:Main/canshu/id/5,方法来接收使用
<?php
namespace Lianxi\Controller;
use Think\Controller;
class MainController extends Controller
{
//通过地址栏传参数,如:Main/canshu/id/5,方法来接收使用
public function canshu($id)
{
//方法一
//echo $_GET["id"];
//方法二:canshu($id)
echo $id;//如果给$id赋值canshu($id=0)时,地址栏不给参数也不会报错
}
}
四、自动收集表单(功能强大,把表单里面的内容用create方法快速收集)
Application/Lianxi/controller/MainController.class.php
<?php
namespace Lianxi\Controller;
use Think\Controller;
class MainController extends Controller
{
public function Biaodan()
{
//实现两个逻辑
//1.显示添加页面2.往数据库添加数据
if(empty($_POST))
{
$this->show();
}
else
{
$n = D("Nation");
$n->create();//自动收集表单,前提是必须有post数据,如果post为空,走if;html页面中input里面的name一定要对应数据库表的的列名,大小写敏感
$z = $n->add();
if($z)
{
//跳转方法一
//$this->success("添加成功","Biaodan",5);//5是跳转时间,间隔5秒
//跳转方法二
$this->redirect('Biaodan',array(),5,"页面跳转中...");//array('id'=>2),跳转页面的同时可以传参数,关联
}
else
{
$this->error("添加失败!");//一个参数就可以,error失败默认返回前一个页面
}
}
}
}
Application/Lianxi/view/Main/Biaodan.html
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <form action="__SELF__" method="post"> <div>代号:<input type="text" name="Code" /></div> <div>名称:<input type="text" name="Name" /></div> <input type="submit" value="添加" /> </form> </body> </html>
1.跳转页面失败后如何把错误信息去掉的问题:

2.在表单<form>里面的action指向哪里的问题:指向__SELF__或者__ACTION__
先var_dump(get_defined_constants(true));显示出系统常量,找到__SELF__和__ACTION__;
__SELF和__ACTION__的区别:__SELF__访问的是自身,就是浏览器访问的地址,如:localhost/tp/index.php/Home/Main/Biaodan/code/10(code和10是随意传的参数),__ACTION__只能访问到Biaodan(方法)这里

ThinkPHP数据库访问CRUD;__SELF__和__ACTION__的区别;自动收集表单:$n->create();的更多相关文章
- 数据库访问CRUD;__SELF__和__ACTION__的区别;自动收集表单:$n->create();
一.tp框架数据访问(pdo基础) public function test() { $n = D("Nation"); //select();find(); //查询 1.$at ...
- 基于ASP.NET WEB API实现分布式数据访问中间层(提供对数据库的CRUD)
一些小的C/S项目(winform.WPF等),因需要访问操作数据库,但又不能把DB连接配置在客户端上,原因有很多,可能是DB连接无法直接访问,或客户端不想安装各种DB访问组件,或DB连接不想暴露在客 ...
- 适用于app.config与web.config的ConfigUtil读写工具类 基于MongoDb官方C#驱动封装MongoDbCsharpHelper类(CRUD类) 基于ASP.NET WEB API实现分布式数据访问中间层(提供对数据库的CRUD) C# 实现AOP 的几种常见方式
适用于app.config与web.config的ConfigUtil读写工具类 之前文章:<两种读写配置文件的方案(app.config与web.config通用)>,现在重新整理一 ...
- 使用Repository模式构建数据库访问层
使用Repository模式构建数据库访问层 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程[二]——使用Repository模式构建数据库访问层 系列导航地址http:// ...
- Spring Boot使用Spring Data Jpa对MySQL数据库进行CRUD操作
只需两步!Eclipse+Maven快速构建第一个Spring Boot项目 构建了第一个Spring Boot项目. Spring Boot连接MySQL数据库 连接了MySQL数据库. 本文在之前 ...
- ThinkPHP 数据库操作(一) : 连接数据库
ThinkPHP内置了抽象数据库访问层,把不同的数据库操作封装起来,我们只需要使用公共的Db类进行操 作,而无需针对不同的数据库写不同的代码和底层实现,Db类会自动调用相应的数据库驱动来处理.采用 P ...
- [转]DbHelper通用数据库访问帮助类
之前我一直都是在博客园中查看各位高手的博文,确实学到了不少知识,不过比较少写博客,现在就把我自己在项目实施过程中使用到比较好的技术框架写出来,希望能让更多的人了解和学习. 通常我们在开发使用数据库访问 ...
- 第7章 数据库访问与ORM 慕课网微信小程序开发学习笔记
第7章 数据库访问与ORM https://coding.imooc.com/learn/list/97.html 目录: 7-1 数据库操作三种方式之原生SQL 19:09 7-2 从一个错误了解E ...
- 架构-数据库访问-SQL语言进行连接数据库服务器-DAO:DAO
ylbtech-架构-数据库访问-SQL语言进行连接数据库服务器-DAO:DAO DAO(Data Access Object) 数据访问对象是一个面向对象的数据库接口,它显露了 Microsoft ...
随机推荐
- SSO 单点登录实现
.NET基于Redis缓存实现单点登录SSO的解决方案 http://www.cnblogs.com/yinrq/p/5276628.html 共享cookie的方案 http://www.codep ...
- 登录oracle数据库提示账户锁定解决方法
问题再现: 由于更改了oracle账户的密码,退出重新连接oracle出现了账户被锁定的情况. 请了百度君出来卸载一下,问题已解决. 在cmd下:sqlplus /nolog 然后:以dba身份登录: ...
- 基于Netty4的HttpServer和HttpClient的简单实现
Netty的主页:http://netty.io/index.html 使用的Netty的版本:netty-4.0.23.Final.tar.bz2 ‐ 15-Aug-2014 (Stable, Re ...
- 使用DotNetBar制作漂亮的WinFrom界面,自定义AgileEAS.NET SOA平台WinClient主界面
一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...
- [Linux]在linux中,常常用到ctrl和其他按键组合,常用的有哪些及意义呢
在linux中,常常用到ctrl和其他按键组合,常用的有哪些及意义呢? Ctrl+c 结束正在运行的程序 Ctrl+d 结束输入或退出shell Ctrl+s 暂停屏幕输出[锁住终端] Ctrl+q ...
- [.NET]二维码生成
又好一段时间没有写写东西了,继续回归原来的模式,多做记录,最近要实现个unity的二维码方面的功能,首先就要解决生成二维码的问题,这个倒是有这方面的组件,然后我通过强大的反编译工具Reflector( ...
- 如何自定义jupyter notebook的主题
临时性的改变一个jupyter的主题 参考这个实现,只要在notebook里运行这段代码就行了,能让所有的cell都能够显示黑色背景 一个更为完备的工具 参考这个方案: 安装jupyter-theme ...
- Js-知识小总结
1.给标签价 class属性的时候,记住是 ClassName, 例如:var oImg = document.getElementById('img1'); 要给这个对象价class属性 oimg. ...
- Node.js学习之简介
1.简单的说Node.js就是运行在服务端的javaScript: 2.Node.js是一个基于Chrome javaScript运行时建立的一个平台: 3.Node.js是一个事件驱动I/O服务端J ...
- windows 2008 server NTP Server
1. 选择一台服务器作为时间同步服务器. 2. 运行Regedit,打开注册表编辑器. 3. 找到注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Ser ...