thinkphp 里sql 语句如何解读????

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp 里sql 语句如何解读????相关的知识,希望对你有一定的参考价值。

thinkphp 里 sql 语句为啥这样写,怎么解读。。。。。
M('fields')->where('(model = \'\' or model = \'customer\') and is_validate=1 and is_main=1')->select();

这个不是原生写法,这是tp固有的写法,里面对语句做了封装,就是查询fields表里条件是model为空或其他条件符合的值。明白了吧! 参考技术A 这个代码是thinkphp3.2的写法,但是条件语句用的是原生查询,没有使用模型的组装方法,条件会直接拼装到sql语句中where部分,一般不建议这样写。
可以解释为
model 值 为空或者 'customer' 且 is_validate=1 且 is_main=1
参考技术B 查询fields表中 条件model=''(空)或者=coustomer 并且 is_validate=1 并且is_main=1的所有数据 参考技术C 你可以使用 getLastSql() 这个函数获取的上面的额sql语句,print_r(M('fields')->getLastSql());这样就能把原sql的语句打印出来,看结果就知道上面的到底是什么意思了。 参考技术D select * from fields where (model='' or model='customer') and is_validate = 1 and is_main = 1;

ThinkPHP执行原生的SQL语句

执行原生的SQL语句:

$sql="insert select update delete....";

①查询语句:   $model对象 -> query($sql);     返回一个二维数组结果

②添加/修改/删除语句:  $model对象 -> excute($sql);     返回受影响记录条数


以上是关于thinkphp 里sql 语句如何解读????的主要内容,如果未能解决你的问题,请参考以下文章

ThinkPHP里怎么直接执行一句SQL语句

SQL 语句 如何把多行数据放入一行显示 比如:

ThinkPHP的查询语句如何限定查询字段

thinkphp常见问题

ThinkPHP执行原生的SQL语句

thinkphp怎么打印sql语句