用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的用法,请自行百度