PHP ThinkPHP 数据修改
GoodsController.class.php(Goods商品控制器):
<?php
//后台商品控制器
namespace AdminController;
use ThinkController;
//Controller父类:ThinkPHP/Library/Think/Controller.class.php
class GoodsController extends Controller{
//修改商品"update"是一个关键字,所以方法名不能是"update"。
function upd1(){
$goods = D("Goods");
//AR方式实现数据修改,也可以通过关联数组的方式修改。
//$goods -> goods_id = 156;
$goods -> goods_name = "坚果手机";
$goods -> goods_price = 3500;
$goods -> goods_weight = 115;
//$z = $goods -> save(); //在ThinkPHP框架中,不允许一次性修改所有记录信息,必须要有where()子句或者修改的数据中有主键ID值。(否则返回false)
//$z = $goods->where("goods_id=167") -> save(); //返回受影响的记录行数。假如修改的数据和数据表中的原始数据相同,则返回0.
$z = $goods->where("goods_id>=145 and goods_id<=149") -> save(); //where()
//mysql数据库本身允许一次性修改全部记录信息,但现实需求中(ThinkPHP框架) 不能一次性修改数据表的全部记录信息
dump($z);
$this -> display();
}
}
GoodsController.class.php(Goods商品控制器):<?php
//后台商品控制器
namespace AdminController;
use ThinkController;
//Controller父类:ThinkPHP/Library/Think/Controller.class.php
class GoodsController extends Controller{
//修改商品"update"是一个关键字,所以方法名不能是"update"。
//参数$goods_id 是通过pathinfo方式传递的get变量名称。
//http:网址/index.php/分组/控制器/操作方法/参数名1/值/参数名2/值
//www.localhost.com/shop/index.php/Admin/Goods/upd/goods_id/12
//以下upd 方法每次访问的时候必须传递goods_id参数信息
function upd($goods_id){
$goods = D("Goods");
//两个逻辑:展示、收集
if(!empty($_POST)){
$data = $goods -> create(); //create()方法用于收集表单数据、验证表单数据等。此方式一般需要实例化GoodsModel,不使用D("Goods")函数。
$z = $goods->save($data); //修改。接收的表单数据中有主键ID字段的值,可以不用where()子句。
if($z){
$this ->redirect("showlist", array(), 2, "修改商品成功!");
}else{
$this ->redirect("upd", array("goods_id"=>$goods_id), 2, "修改商品失败!");
}
}else{
//根据$goods_id获得被修改商品的信息
$info = $goods->find($goods_id); //数据查询find()方法,通过一维数组返回一条记录信息
$this -> assign("info",$info);
$this -> display();
}
}
}
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
