
正文
关于thinkphp$model->query的信息
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
ThinkPHP中execute和query方法的区别
ThinkPHP中execute()和query()方法都可以在参数里直接输入SQL语句。不同的是execute()通常用来执行insert或update等SQL语句,而query常用来执行select等语句。
waw = M();res = $waw-query($sql); 或 $res = $waw-execute($sql);由于$sql中包含了表名,实例化模型时可以为空。注:query()与execute()是有区别的,不能乱用,详见ThinkPHP光放手册驱动扩展部分。
如果你当前采用了分布式数据库,并且设置了读写分离的话,query方法始终是在读服务器执行,因此query方法对应的都是读操作,而不管你的SQL语句是什么。上面一段话取自tp1说明文档,写操作需要使用execute方法。
相关问答
Q1: 浅析ThinkPHP中execute和query方法的区别
大家都知道,thinkphp中execute()和query()方法都可以在参数里直接输入sql语句。但是不同的是execute()通常用来执行insert或update等sql语句,而query常用来执行select等语句。
waw = M();res = $waw-query($sql); 或 $res = $waw-execute($sql);由于$sql中包含了表名,实例化模型时可以为空。注:query()与execute()是有区别的,不能乱用,详见ThinkPHP光放手册驱动扩展部分。
如果你当前采用了分布式数据库,并且设置了读写分离的话,query方法始终是在读服务器执行,因此query方法对应的都是读操作,而不管你的SQL语句是什么。上面一段话取自tp1说明文档,写操作需要使用execute方法。
Q2: 官方求助,thinkphp如何防注入
User-find($_GET[id]);即便用户输入了一些恶意的id参数,系统也会强制转换成整型,避免恶意注入。这是因为,系统会对数据进行强制的数据类型检测,并且对数据来源进行数据格式转换。而且,对于字符串类型的数据,ThinkPHP都会进行escape_string处理(real_escape_string,mysql_escape_string)。
主要的sql注入来源于数据请求。比如表单的提交。攻击者会在请求中带上一些可执行的sql语句。达到注入的目的。Thinkphp内置了数据过滤机制。可以有效的将一些存在风险的符号过滤处理。具体如下:Thinkphp2版本:使用I方法来获取post、get等参数。例如获取id参数。
sql注入其实就是在这些不安全控件内输入sql或其他数据库的一些语句,从而达到欺骗服务器执行恶意到吗影响到数据库的数据。防止sql注入,可以在接受不安全空间的内容时过滤掉接受字符串内的“”,那么他不再是一条sql语句,而是一个类似sql语句的zifuc,执行后也不会对数据库有破坏。
各种框架里面其实都有对于非法字符过滤的支持,最简单的比如ThinkPHP,你可以直接防止注入。写一个PHP扩展对于进入参数进行有选择的过滤。 开发一个PHP扩展是对于一个PHP高级程序员必备的技能,将你需要的功能打包在PHP扩展里面,就像黑词过滤一样进行检查,是非常方便的。
thinkphp$model->query的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、thinkphp$model->query的信息别忘了在本站进行查找喔。






