Thinkphp直接执行原生SQL语句有两个函数: query() 和 execute()。这两个函数都是使用M()函数创建的对象的方法,即,要调用这方法,可以使用M()->execute($sql);

query():用于 SQL 查询操作,并返回符合查询条件的数据集

execute():更新和写入数据的 SQL 操作,返回影响的记录数

下面各举一个例子:

public function read(){

    // 实例化一个空模型,没有对应任何数据表

    $Dao = M();

    //或者使用 $Dao = new Model();

    $list = $Dao->query("select * from user where uid<5");

    if($list){

        $this->assign('list', $list );

        $this->display();

    } else {

        $this->error($Dao->getError());

    }

}

public function read(){

    header("Content-Type:text/html; charset=utf-8");

    // 实例化一个空模型,没有对应任何数据表

    $Dao = M();

    //或者使用 $Dao = new Model();

    $num = $Dao->execute("update user set email = '[email protected]' where uid=3");

    if($num){

        echo '更新 ',$num,' 条记录。';

    }else{

        echo '无记录更新';

    }

03-14 16:31