保存数据时自动检测字段长度并裁剪【TP3.2.3】
浏览:2246
最后更新:2015-06-08 09:49
分类:其他
本例通过修改Model.class.php文件,实现对数据写入前的自动校验。如果字段长度过长,则自动裁剪成字段大小。
比如一个字段是varchar(100)的,但写入的数据长度达到150时。通过$db->add($data)方法新增时,会自动将数据只取前100位,达到安全写入的效果。
通过参数DB_TOOLS_CHECKLENGTH来控制(true|false),默认为false
文件可以替换 TP3.2.3的
ThinkPHP/Library/Think 目录下
如果自行修改,则将此文件中最后几个fn打头的函数复制过来,并且找到
protected function _facade($data) {
函数,找到
// 字段类型检查 和 强制转换
$this->_parseType($data,$key);
在其后面加上一句
$this->fn_checkFieldLength($val,$key);
即可
同时,将循环foreach中的$val改成传址的
即
foreach ($data as $key=>$val){
改成
foreach ($data as $key=>&$val){