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 '无记录更新';
}