ThinkPHP3.2.3中execute用于更新和写入数据的sql操作,如果数据非法或者查询错误则返回false ,否则返回影响的记录数。
使用示例:
$Model = new \Think\Model() // 实例化一个model对象 没有对应任何数据表 $Model->execute("update think_user set name='thinkPHP' where status=1");
如果你当前采用了分布式数据库,并且设置了读写分离的话,execute方法始终是在写服务器执行,因此execute方法对应的都是写操作,而不管你的SQL语句是什么。
也可以在execute方法中使用表名的简化写法,便于动态更改表前缀,例如:
$Model = new \Think\Model() // 实例化一个model对象 没有对应任何数据表 $Model->execute("update __PREFIX__user set name='thinkPHP' where status=1"); // 3.2.2版本以上还可以直接使用 $Model->execute("update __USER__ set name='thinkPHP' where status=1");
和上面的写法等效,会自动读取当前设置的表前缀。