`
flex_莫冲
  • 浏览: 1075450 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

TP升级到3.2.3的注意事项

阅读更多
从TP3.2.2升级到3.2.3有以下几点需要注意
1 TP3.2.3的DB FIELD默认小写,如果DB有大小写混合的设计,需要在config.php添加以下设置
'DB_PARAMS'    =>    array(\PDO::ATTR_CASE => \PDO::CASE_NATURAL),

2 'URL_CASE_INSENSITIVE' =>true時,APP_DEBUG=true,若Action名或模板名帶有大小寫,會出現找不到模板的異常,因此'URL_CASE_INSENSITIVE' 一律設置為false(默認值)

3 APP_DEBUG設置在index.php,config.php不需要再設置

4 3.2.2的ThinkPHP\Library\Think\Log\Driver\File.class.php 有bug。若在Runtime下没有对应module的目录,则\Think\Log::write()无法创建目录并生成log文件。3.2.3 fixed这个问题了。

5 第三方類庫建议存放位置\ThinkPHP\Library\Vendor

6 join的默认类型由left join 改成了inner join

...

7 3.2對sql語句檢查更加嚴格。若DB Field設置為not null,而sql將該值設置為null,則sql會拋出異常。若某個not null字段為null,而其它字段正常的情況下,TP3.2會將not null的字段對應的語句過濾掉
demo 1:

public function testUpdate()
	{
		$data['HKID'] = null;
		$searchData['user_id'] = 3;
		$result = D("OauthUser")->where($searchData)->save($data);
		echo $result!==false ? "success" : "failed";
		echo " " . D("OauthUser")->getLastSql();
	}

HKID字段在DB是not null,若設置為null,會拋出以下異常
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `user_id` = 3' at line 1
改成$data['HKID'] = ""; 執行成功

demo 2:
public function testMultiUpdate()
	{
		$data['HKID'] = null;
 $data['districtID'] = 1;
		$searchData['user_id'] = 3;
		$result = D("OauthUser")->where($searchData)->save($data);
		echo $result!==false ? "success" : "failed";
		echo " " . D("OauthUser")->getLastSql();
	}


以上更新不會拋出異常。生成的sql會過濾掉不符合DB的HKID字段。生成的SQL:
UPDATE `oauth_users` SET `districtID`='1' WHERE `user_id` = 3



分享到:
评论

相关推荐

    tp3.2.3快速入门

    tp3.2.3构架快速入门,ThinkPHP是一个快速、简单的基于MVC和面向对象的轻量级PHP开发框架,遵循Apache2开源协议发 布,从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,尤其注重开发体 ...

    tp3.2.3开发微信公众号

    tp3.2.3开发微信公众号,相关的有自定义菜单,同步菜单、素材管理等

    tp3.2.3带表情无限评论回复

    tp3.2.3带表情无限评论回复,可以借鉴学习,给大家参考。

    基于tp3.2.3的博客前后台手机端API 前台 vue框架

    基于tp3.2.3的博客前后台手机端API 前台 vue框架 pc端页面比较简单

    thinkPHP3.2.3定时执行任务

    thinkPHP3.2.3使用Cron实现网站访问执行任务。

    从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解

    本文实例讲述了从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记。分享给大家供大家参考,具体如下: 用tp3.2.3做了不少项目,但是毕竟要与时代接轨,学习一些新的框架,比如tp5 以下记录一些学习中遇到的问题及解决办法,...

    ThinkPHP3.2.3核心版

    核心版本去除了第三方扩展和驱动,仅保留核心类库和SAE模式支持。 ThinkPHP3.2.3版本是一个优化和修正版本,比3.2.2更加稳定、高效和安全,是一个推荐升级的版本,主要更新如下:

    官方 thinkphp3.2.3beta

    ThinkPHP一直在致力于简化企业和个人的WEB应用开发。8年来一直在坚持不懈地努力,并坚持开源和免费提供使用,帮助开发人员更加方便的进行WEB应用的快速开发。 发布本资料须遵守开放出版许可协议 1.0 或者更新版本。...

    TP3.2.3倒计时.rar_FZK_cypt倒计时软件_thinkphp3.2.3_tp3.2倒计时_倒计时

    thinkphp3.2.3页面倒计时功能,未到时间则每秒中自主更新剩余时间,到时间则切换到正式内容

    Thinkphp3.2.3通用后台+API接口设计

    1.此项目是基于Thinkphp3.2.3+easyui做的权限管理系统,所有后台管理系统均可基于此项目开发。 2.项目集成php反射自动生成API文档,通过访问http://你的IP或者域名/文件地址/tpcs/index.php/Api/Doc/index.html即可...

    ThinkPHP 3.2.3 核心版.zip

    ThinkPHP 3.2.3 核心版 更新日志:2014-12-24 [数据库方面]数据库驱动完全用PDO重写;支持通用insertAll方法;改进参数绑定机制;主从分布式数据库连接改进;对Mongo的支持更加完善;[模型方面]模型类的诸多增强和...

    建站管家多语言企业建站系统 TP3.2.3

    《建站管家》ThinkPHP3.2.3版本介绍:1、基于ThinkPHP3.2.3的中英双语企业建站系统2、可自行扩展多语言(默认中英文)3、前台及后台均支持手机版+电脑版4、自定义URL前缀5、多级分类6、整合Ueditor,水印裁切图片...

    thinkphp3.2.3上传多张图片+上传完预览

    之前的thinkphp3.2.2上传多张图片功能在thinkphp3.2.3上实现

    centOS7安装zabbix3.2.3

    centOS7安装zabbix3.2.3

    mybatis3.2.3

    mybatis-3.2.3-SNAPSHOT.jar最新jar包

    ThinkPHP3.2.3快速入门

    ThinkPHP3.2.3快速入门

    apache-maven-3.2.3-bin.zip

    apache-maven-3.2.3-bin.zip 最新的下载资源,给大家提供下载!

    免费thinkPHP3.2.3框架

    免费thinkPHP3.2.3框架

    ThinkPHP v3.2.3 完整版.rar

    ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,是为了敏捷WEB应用 开发和简化企业级应用开发而诞生的。拥有众多的优秀功能和特性,经历了三年多发展的同时,在社区...

    ThinkPHP3.2.3扩展之二维码

    NULL 博文链接:https://shouce.iteye.com/blog/2271922

Global site tag (gtag.js) - Google Analytics