子分类
  • 无子分类
Update类(class Update)
  • 2014-07-02发布
  • 2014-07-02修改

Update类位于 Tun\Db\Sql\ 目录下,是向数据库更新数据的主要通道。在模型层中,可以通过Sql数调用Update类中的方法,也可以直接引入,通过新建对象的方式使用。


如下所示:

namespace User\Model;
use Tun\Db\Sql\Sql;
use Tun\Db\Sql\Where;
use Tun\Db\Adapter\Adapter;
use Tun\Db\Sql\Expr;
use Tun\Db\Sql\ExprWhere;
use Tun\Paginator\Paginator;
use Tun\Request\Params;
use Tun\Captcha\CaptchaCode;
class Document{
    private $sortReg = '/^[0-9]{0,11}$/';
     
    public function __construct(Adapter $adapter){
        $this->adapter = $adapter;
        $this->table = 'document';
        $this->categoryTable = 'document_cate';
    }
    public function edit($data,$extend=array()){
        $table = $this->table;
        $dataUpdate = $data;
        unset($dataUpdate['add_time']);
        unset($dataUpdate['document_id']);
        unset($dataUpdate['user_id']);
        
        $sql = new Sql($this->adapter);
        $update = $sql->update();
        $update->table($table);
        $update->columns($dataUpdate);
        $update->where(array('document_id' => $data['document_id']));
        $insertStatement = $insert->statement();
    //  echo $insertStatement->prepareToString();exit;
        $result = $insertStatement->prepare()->execute();
        return $result;
    }
 }


其中$data是表字段与值的数组键值对:

$data = array('字段1'=>'字段值1','字段2'=>'字段值2','字段3'=>'字段值3',....);


也可以用以下的方法:

namespace User\Model;
use Tun\Db\Sql\Sql;
use Tun\Db\Sql\Update;
use Tun\Db\Sql\Where;
use Tun\Db\Adapter\Adapter;
use Tun\Db\Sql\Expr;
use Tun\Db\Sql\ExprWhere;
use Tun\Paginator\Paginator;
use Tun\Request\Params;
use Tun\Captcha\CaptchaCode;
class Document{
    private $sortReg = '/^[0-9]{0,11}$/';
     
    public function __construct(Adapter $adapter){
        $this->adapter = $adapter;
        $this->table = 'document';
        $this->categoryTable = 'document_cate';
    }
    public function edit($data,$extend=array()){
        $table = $this->table;
        $dataUpdate = $data;
        unset($dataUpdate['add_time']);
        unset($dataUpdate['document_id']);
        unset($dataUpdate['user_id']);
        
        $update = new Update($this->adapter);
        $update->table($table);
        $update->columns($dataUpdate);
        $update->where(array('document_id' => $data['document_id']));
        $statement = $update->statement();
//      echo $result = $statement->prepareToString();exit;
        $result = $statement->prepare()->execute();
        return $result;
    }
 }



Update类中有以下方法:

statement()

table()

columns()

where() //where的用法请参阅Where类。