save() 实现数据修改,返回受影响的记录条数php
具体有两种方式实现数据修改,与添加相似(数组、AR方式)html
a) $goods = D(“Goods”);sql
b) $ar = array(‘goods_id’=>100,‘goods_name’=>’lenovo手机’,’goods_price’=>1200);数据库
c) $goods ->where(‘goods_id>50’)-> save($ar);数组
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
function
Update()
{
//方法一:shuzu
$model
=D(
"info"
);
$attr
=
array
(
"Code"
=>
"p014"
,
"Name"
=>
"修改数据"
,
"Sex"
=>true,
"Nation"
=>
"n001"
,
"Birthday"
=>
"2000-1-1"
,
);
//调用save()方法来修改数据
$model
->save(
$attr
);
}
|
数据修改为功:安全
a) $goods = D(“Goods”);服务器
b) $goods -> goods_id = 53;框架
c) $goods -> goods_name = “三星手机”;post
d) $goods -> goods_price = 2000;ui
e) $goods -> where(‘goods_price>10000’)->save();
1
2
3
4
5
|
//方法二:AR
$model
=D(
"info"
);
$model
->Name=
"Update"
;
$model
->Nation=
"n001"
;
$model
->where(
"Code='p006'"
)->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;
}
以上参数表述,若是在请求的时候没有按照规则传递参数,那么当前方法禁止访问。
(除非参数有默认值)
修改商品信息步骤:
MainController.class.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
//方法三:自动修改表单
$model
=D(
"info"
);
if
(
empty
(
$_POST
))
{
$code
=
"p006"
;
$attr
=
$model
->find(
$code
);
$this
->assign(
"shuju"
,
$attr
);
$this
->display();
}
else
{
$model
->create();
$model
->save();
}
|
视图模板的显示页面,Veiw/Main/update.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<!
DOCTYPE
html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
head
>
<
meta
http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title
>无标题文档</
title
>
</
head
>
<
body
>
<!--自动收集表单数据入库操做 -->
<!--注意大小写和数据库中的列名一致 -->
<
h2
>修改页面</
h2
>
<
form
action="__ACTION__" method="post">
<
input
type="hidden" name="Code" value="<{$shuju.code}>"/>
<
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
>
|
==>
数据库中信息改变:
delete() 返回受影响的记录条数
$goods -> delete(30); 删除主键值等于30的记录信息
$goods -> delete(“10,12,13”); 删除主键值等于10 12 13的三条记录
$goods -> where(“goods_id>60”)->delete() 把符合条件的记录都给删除
1
2
3
4
5
6
7
8
9
10
11
|
//删除数据
function
Delete
()
{
$model
=D(
"info"
);
$model
->
delete
();
//里面不加条件会删除全部数据
//根据主键值删
$model
->
delete
(
"p011"
);
//根据条件删除
$model
->where(
"nation='n001'"
)->
delete
();
}
|
$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);