数据库访问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);
}

二、自动收集表单:

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失败默认返回前一个页面
            }
        }
    }
    //通过地址栏传参数,如:Main/canshu/id/5,方法来接受使用
    public function canshu($id)
    {
        //方法一
        //echo $_GET["id"];
        //方法二:canshu($id)
        echo $id;//如果给$id赋值canshu($id=0)时,地址栏不给参数也不会报错
    }
}

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(方法)这里

时间: 2024-10-11 21:17:57

数据库访问CRUD;__SELF__和__ACTION__的区别;自动收集表单:$n->create();的相关文章

数据库访问工具 DBUtl(公孙二狗)

数据库访问工具 DBUtil DBUtil 用于简化数据库的访问,只要准备好配置文件,调用 DBUtil 的静态函数就能直接得到查询数据库的结果. 本文主要内容有: 数据库访问的思考 DBUtil 实例 DBUtil 的 API DBUtil 的实现 把 SQL 语句放到文件里 ORMapping 1. 数据库访问的思考 以查询数据库中 id 为 1 的 user 为例,思考访问数据库存在的问题以及优化. 常用的访问数据库为以下几步: 设置数据库驱动和连接名 设置数据库所在电脑的 IP,数据库名

数据库访问技术之JDBC

在了解JDBC之前呢,我们可以先对ODBC做一个回顾,以便于更好的理解JDBC.看名字也知道这两个关系不一般,他们实现了同样的功能,为应用程序连接和操作数据库提供支持.所以,我们先从ODBC开始. ODBC ODBC(Open Database Connectivity)是开放数据库互连的简称,是一种使用SQL的应用程序接口.它是一系列的规范和对数据库访问的API.那么API+SQL就可以执行对数据库的操作.它是不依赖于DBMS的,即通过ODBC可以以相同的方式连接大部分数据库.它包括了应用程序

我也来写:数据库访问类DBHelper

一.前言 相信许多人都百度过:“.net 数据库访问类”.然后就出来一大堆SqlHelper.我也用过这些SqlHelper,也自己写过,一堆静态方法,开始使用起来感觉很不错,它们也确实在很多时候可以很好的工作.ADO.NET已经封装很好了,我们很容易就可以实现自己的数据库访问类. 很久前,忘记在哪里看到过了,有一个朋友写了一篇[如何做一个好用的数据库访问类](有兴趣的朋友仍然可以搜索到),这篇文章确实写得很好,作者很详细的讲解了如何设计一个好的数据库访问类:所谓“好“是指:轻量.易用.通用.高

我也来写:数据库访问类DBHelper(转)

一.前言 相信许多人都百度过:“.net 数据库访问类”.然后就出来一大堆SqlHelper.我也用过这些SqlHelper,也自己写过,一堆静态方法,开始使用起来感觉很不错,它们也确实在很多时候可以很好的工作.ADO.NET已经封装很好了,我们很容易就可以实现自己的数据库访问类. 很久前,忘记在哪里看到过了,有一个朋友写了一篇[如何做一个好用的数据库访问类](有兴趣的朋友仍然可以搜索到),这篇文章确实写得很好,作者很详细的讲解了如何设计一个好的数据库访问类:所谓“好“是指:轻量.易用.通用.高

读《面向程序员的数据库访问性能优化法则》

刚刚看了一下2014年中国数据库技术大会(DTCC)PPT,网易杭州研究院的一位同学介绍了一下数据库的优化与调优. 网易的Mysql优化做的很好,而且还写了本书和大家分享这些经验<深入浅出MySQL数据库开发优化与管理维护>. 文章里面大多数写的是我们平常很少想到的硬件方面的优化,还是很深入的.其中提到的<面向程序员的数据库访问性能优化法则>引起了我的关注.一直觉得,程序员应该会写好的SQL,就像应该写好的代码一样.我们读过<Effective C++>等语言类的经典书

SpringBoot数据库访问(一)--------关系型数据库访问(RDBMS)

关系型数据库访问(RDBMS) 采用JdbcTemplate.MyBatis.JPA.Hibernate等技术. 一.JdbcTemplate工具 在pom.xml添加boot-starter-jdbc定义 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1

公共的数据库访问访问类 SqlHelper.cs

/// <summary> /// 类说明:公共的数据库访问访问类 /// </summary> using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; using System.Collections; namespace DotNet.Utilities { /// <summary> /// 

在数据库访问项目中使用微软企业库Enterprise Library,实现多种数据库的支持

在我们开发很多项目中,数据访问都是必不可少的,有的需要访问Oracle.SQLServer.Mysql这些常规的数据库,也有可能访问SQLite.Access,或者一些我们可能不常用的PostgreSQL.IBM DB2.或者国产达梦数据库等等,这些数据库的共同特点是关系型数据库,基本上开发的模型都差不多,不过如果我们基于ADO.NET的基础上进行开发的话,那么各种数据库都有自己不同的数据库操作对象,微软企业库Enterprise Library是基于这些不同数据库的操作做的抽象模型,适合多数据

C#---数据库访问通用类、Access数据库操作类、mysql类 .[转]

原文链接 //C# 数据库访问通用类 (ADO.NET)using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Data.SqlClient;using System.Configuration; namespace XXX{    /// <summary>    /// 针对SQL Server数据库操作的通用类           /// </sum