用thinkphp执行原生sql


Controller代码:

Demo2Controller.class.php

<?php
namespace Home\Controller;
use Think\Controller;
use Think\Model;

class Demo2Controller extends Controller {
    
    //insert 操作
    public function test1(){
        $Model = new Model();
        $sql = "insert into city(cityname,province,citydesc) values('石家庄','河北省','河北省城市')";
        $Model->execute($sql);
        
        echo "insert 操作";
    }
    
    //delete 操作
    public function test2(){
        $Model = new Model();
        $sql = "delete from city where cityname='石家庄'";
        $Model->execute($sql);
         
        echo "delete 操作";
    }
    
    // update 操作
    public function test3(){
        $Model = new Model();
        $sql = "update city set citydesc='河北省省会' where cityname='石家庄'";
        $Model->execute($sql);
    
        echo "update 操作";
    }
    
    // select 操作
    public function test4(){
        $Model = new Model();
        $sql = "select * from city order by id asc";
        $list = $Model->query($sql);
        
        $this->assign('list',$list);
        $this->display();
    }

}

 

select 操作对应的View页面:

test4.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>test3</title>
</head>
<body>
<table width="100%" border="1" cellspacing="0" cellpadding="0">
  <tr>
      <td>序号</td>
    <td>城市</td>
    <td>省会</td>
    <td>描述</td>
  </tr>
  <foreach name="list" item="item" key="index">
  <tr>
      <td>{$index+1}</td>
    <td>{$item.cityname}</td>
    <td>{$item.province}</td>
    <td>{$item.citydesc}</td>
  </tr>
  </foreach>
</table>
</body>
</html>

 

执行原生sql没有找到可以传参的方法,如果需要传参,我是这么处理的

        $Model = new Model();
        $sql = sprintf("delete from tbrecord where recordid=%d",I('get.id'));
        $Model->execute($sql);

使用了sprintf,想了解sprintf的用法,请自行百度


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM