ThinkPHP实现对数据库中表的修改删除以及两种原生SQL语句的执行

说道数据的修改就是主要用到了save的方法。

在建立对象的时候无论是用D方法还是用M的方法,都可以相应的正确建立对象。

然后,在我们建立完对象之后,我们就应该确定自己要修改的属性以及他的值,然后可以用建立关联数组的方法,写入要修改的数据。

当上面的工作完成之后,就应该用我们的save方法进行修改。

下面是自己的实例:

function update(){
$goods=M("emptest");
$arr=array(‘id‘=>‘7‘,‘name‘=>‘xu2xuning‘,‘salary‘=>5555);
$res=$goods->save($arr);
//这里返回的是被影响的行数,在crud的操作里面,都是返回的受影响的行数,dql是返回的结果集
echo $res;
}

同样的我们也可以用AR的方式逐步添加,但是,这里就遇到了一个问题,数据设计完成之后就能够直接保存了,这里显然是不可能的。

所以这里支持和where语句通用,这样的话,对于数据的修改那就是再方便不过了,即以下的方法:

$goods=D("emptest");
$goods->name="Cool";
$goods->garde="2";
$goods->email="[email protected]";
$goods->salary="7777";
$goods->where(‘id=2‘)->save();

返回值和上面的是同一数据。


接下来就是数据的删除,说道删除,看着挺简单的;

这是删除指定主键的数据行。

function delete(){
$goods=D("emptest");
$goods->delete(9);
}

也可以删除多个主键的值得行。

$goods->delete(”1,2,3“); //注意,一定要带引号

同样的,也可以条件性的删除操作。

$goods->where("id>=13 and id<=18")->delete();

这样,增删该查在thinkphp的方法就基本上完成了,还要说的就是执行原生的sql语句。

一般的额增删改查sql语句可以分为两种,一种是数据查询,也可以理解为select语句

另一种是数据操作语句,因为两种语句的返回值是不同的,之前都说过的,所以在ThinkPHP中

执行的方法也是不同的。

dql语句:用query方法(不再是传统的万能方法了),返回数组【1】

dml语句:用execute方法,返回的是布尔值。【2】

【1】:

function test(){
$goods=D("emptest");
$sql="select * from emptest";
$res=$goods->query($sql);
show_bug($res);//这是我自己定义的一个方法,就是var_dump
}

【2】:

function testdml(){
$goods=D("emptest");
$sql="update emptest set name=‘hell‘ where id=7";
$res=$goods->execute($sql);
show_bug($res);
}

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。