6月17 ThinkPHP连接数据库------数据的修改及删除

1.数据修改操作

save()  实现数据修改,返回受影响的记录条数

具体有两种方式实现数据修改,与添加类似(数组、AR方式)

    1.数组方式

a)         $goods = D(“Goods”);

b)        $ar = array(‘goods_id’=>100,‘goods_name’=>’lenovo手机’,’goods_price’=>1200);

c)         $goods ->where(‘goods_id>50’)-> save($ar);

Home\MainController.class.php中的update方法

public function Update()
    {
        $model = D("Info");
        //1.数组方式
    /*    $attr = array(
            "Code"=>"z001",//主键值不能改
            "Name"=>"修改qq",
            "Sex"=>false,
            "Nation"=>"n004",
            "Birthday"=>"1999-3-15",

        );
        //调用save方法修改数据
        //$model->save($attr);

            //赋值方法添加
        $attr["Code"]="a002";
        $attr["Name"]="是不是";
        $attr["Sex"]=false;
        $attr["Nation"]="n002";
        $attr["Birthday"]="2003-4-2";
        $model->save($attr);//添加数据的方法需要参数(该参数是一个关联数组)
}

  2.   AR方式

a)         $goods = D(“Goods”);

b)        $goods -> goods_id = 53;

c)         $goods -> goods_name = “三星手机”;

d)        $goods -> goods_price = 2000;

e)         $goods ->where(‘goods_price>10000’)->save();

    //2 AR方式
        $model->Name = "WWW";
        $model->Nation = "n004";

        $model->where("Code=‘z004‘")->save();

以上sql语句从技术上可行,从业务上不可行(事故)

tp框架有智能考虑,以上情况的sql语句不被允许执行。

如何执行:

①     明确告诉系统那条sql语句被update更新

②     可以设置where进行sql语句更新操作

save()  方法返回值

0:之前没有问题,执行前后数据没有变化

自然数:受影响的记录条数

false:执行失败

数据修改具体实现:

通过路由给一个操作方法传递参数

http://网址/index.php/模块/控制器/方法upd/变量名1/值/变量名2/值/变量名3/值

以上路由是通过get形式给指定的操作传递了三个参数信息

$_POST方式也可以

原则三个参数信息接收的时候通过$_GET接收即可

例如:$_GET[‘变量名1’];

以上参数信息接收太直白,不安全,需要按照框架规则使用下边的方式接收get参数信息

http://网址/index.php/Admin/Goods/upd/name/tom/age/25/addr/beijing

function upd($name,$age,$addr){

$name;

$age;

$addr;

}

以上参数表述,如果在请求的时候没有按照规则传递参数,那么当前方法禁止访问。

(除非参数有默认值)

修改商品信息步骤:

  1. 在“修改”按钮处把被修改商品id信息通过get形式传递给upd操作
  2. 在upd方法里边制作形式参数$goods_id,接收服务器给传递的get变量goods_id
  3. 在修改表单里边制作隐藏域goods_id,避免tp框架禁止修改语句执行
  4. 在upd操作方法内部有两个逻辑:展现表单、收集表单

  3.自动收集表单修改(必须要会的)

public function Update()
    {
        //修改页面
        $model = D("Info");
        if(empty($_POST))
        {
            $code = "z001";
            $attr = $model->find($code);

            $this->assign("shuju",$attr);
            $this->display();
        }
        else
        {
            $model->create();
            $model->save();
        }
    }

视图模板的显示页面,update.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<h1>修改页面</h1>
<form action="__ACTION__" method="post">
<div><input type="hidden" name="Code" value="<{$shuju.code}>" /></div>
<div>姓名:<input type="text" name="Name" value="<{$shuju.name}>" /></div>
<div>性别:<input type="text" name="Sex" value="<{$shuju.sex}>" /></div>
<div>民族:<input type="text" name="Nation" value="<{$shuju.nation}>" /></div>
<div>生日:<input type="text" name="Birthday" value="<{$shuju.birthday}>" /></div>

<input type="submit" value="提交" />
</form>
</body>
</html>

2.数据删除及执行原生sql语句

delete()返回受影响的记录条数

$goods -> delete(30);   删除主键值等于30的记录信息

$goods -> delete(“10,12,13”);   删除主键值等于10 12 13的三条记录

$goods -> where(“goods_id>60”)->delete()   把符合条件的记录都给删除

//删除数据
    public function Delete()
    {
        //删除数据
        $model = D("Info");

        //根据主键值删除
        //$model->delete("a002");    

        //根据条件删除
        $model->where("Nation=‘n005‘")->delete();
    }

2.2执行原生sql语句

  1. 查询语句query()  返回一个二维数组信息
  2. 添加、修改、删除 execute()  返回受影响的记录条数

$goods = D(“Goods”);

$sql = “select * from sw_goods”;

$rst = $goods ->query($sql);

$sql = “select goods_category_id,avg(goods_price) from sw_goods group by goods_category_id having  avg(goods_price)>1000”;

$goods ->query($sql);

$sql = “update sw_goods set goods_name = ‘htc_two’ where goods_id=100”;

$goods ->execute($sql);

时间: 2024-12-25 16:03:21

6月17 ThinkPHP连接数据库------数据的修改及删除的相关文章

6月16 ThinkPHP连接数据库及Model数据模型层--------查询及数据添加

连接数据库配置及Model数据模型层 convertion.php config.php 1.在config.php做数据库连接配置 2.修改配置 /* 数据库设置 */ 'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => 'localhost', // 服务器地址 'DB_NAME' => 'mydb', // 数据库名 'DB_USER' => 'root', // 用户名 'DB_PWD' => '', // 密码 'DB_PORT'

6月17 练习ThinkPHP的增删改查

利用ThinkPHP连接数据库的增删改查的例题:用到的数据库表名Info表,Nation表 数据显示页面:MainController.class.php中的ShowInfo方法 //例题 //显示所有数据 public function ShowInfo() { $model = D("Info"); $attr = $model->field("Info.Code as InfoCode,Info.Name as InfoName,Info.Sex,Nation.N

5月17日云栖精选夜读:分布式大数据系统巧实现,全局数据调度管理不再难

本文从背景.分布式文件系统.容错机制.分布式节点距离计算法则.数据分布策略.分布式计算调度.跨IDC集群规划的两种方式.ODPS跨集群数据依赖等方面深度介绍了分布式大数据系统中全局数据调度和管理. 大数据技能 分布式大数据系统巧实现,全局数据调度管理不再难 作者:大数据史记 大规模数据的分布式机器学习平台 作者:大数据史记 重磅,企业实施大数据的路径 作者:王二辉   发表在:大数据文摘 知识整理 PHP异步的玩法 作者:sibenx Java 异常处理 作者:秦关古月 Php开发ZendStu

2017年09月17日

今日日期:2017年09月17日 整理时间:17:19 天气状态:晴天 工作状态:上班 重要事项:电动车充电 家庭事项:老婆老家回来 今日总结:总体评价今天是失败的一天,无论是在金钱还是经验或者社交上面都一无所获,但是经过深思熟虑我要改变,不能做一个每日效率低下并且每天晚上回想起来都不知道今天做了什么的人,从今天做起改变,加油!你行的陈安太! 工作日程(周1-周五) 日期 时段 时间 主任务 副任务 备注 进度 周一 上午 05:00 检查微信 15263730908 × 采集数据 采集店铺 ×

第三章 管道符、重定向与环境变量 2019年7月17日星期三 第四课

2019年7月17日星期三   第四课 2.7 文件目录管理命令 1.touch命令    创建空白文件或设置文件时间 如:touch haha.txt touch -d “19:00”   修改文件访问和者修改时间 -a 修改读取时间   -m 修改修改时间 -d前两个都修改 2.mkdir命令    创建目录 如果要创建迭代关系的目录要加参数  -p 如:mkdir -p a/b/c/d/e/f/g 3.cp命令    复制文件或目录 复制目录时要加参数 -r 如:cp -r Music/

金蝶KIS专业版替换SXS.dll 遭后门清空数据被修改为【恢复数据联系QQ 735330197,2251434429】解决方法 修复工具。

金蝶KIS专业版 替换SXS.dll 遭后门清空数据(凭证被改为:恢复数据联系QQ 735330197,2251434429)恢复解决方法. [客户名称]:山东青岛福隆发纺织品有限公司 [软件名称]:金蝶KIS专业版12.2 [数据库版本]:MS SQL server 2000  [数据库大小]:1GB  . [问题描述]:客户贪图便宜,使用破解版财务软件,破解者破解后内藏了后门,清空所有数据的触发器.用了1年时间后,后门触发器被激活,删除了所有 科目余额表.存货余额.存货往来明细账.修改了所有

数据库(概念、语法、DBMS、SQL语言:创建数据库、表格,添加、修改、删除数据记录)

关系型数据库:以表作为实体,以主键和外键关系作为联系的一种数据结构. 主键:在关系型数据库中,用一个唯一的标识符来标志每一行,这个标识符就是主键.主键有两个特点:非空和不能重复. 外键:在关系型数据库中,外键就是用来表达表与表之间的关系.联系,通过主外键关系,建立实体之间的联系. 表之间的三种基本关系模型: ① 一对多关系: 一条主表记录对应多条从表记录,一条从表记录对应一条主表记录. ② 一对一关系: 一条主表记录对应一条从表记录,一条从表记录对应一条主表记录. ③ 多对多关系: 一条主表记录

滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(4月17日)

滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfryf/p/4612609.html 优步奖励低/不挣钱/怎么办?看这里:http://www.cnblogs.com/mfryf/p/4642173.html 打豪车应用:uber详细攻略(附100元优惠码:DL8T6):http://www.cnblogs.com/mfryf/p/4752167.h

19 MySQL概念 数据库 数据表 数据类型 增加删除修改查询 WHERE Order By Limit

数据库管理系统DBMS 数据库中相关概念 数据库 数据表 记录 字段 数据 登录和退出MySQL客户端 查询自己的MySQL服务器有几个数据库 二.退出MySQL客户端的命令 修改root用户的密码 在MySQL客户端来修改密码(当前账号的密码) 数据库操作 创建数据库 显示所有数据库 删除数据库 选择数据库 更改数据库默认字符集 数据表操作 显示当前数据库中的所有表 创建数据表 显示表的创建 列的常用属性 修改数据表 删除数据表 显示表结构 MySQL数据类型 整型 浮点型 字符型 文本型 日