数据库操作
使用$this->db->insert/update等,会自动转义,也就是说数据长度可能会变大(增加了转义符)。那么如果数据字段是test varchar(100),来个长度刚好的数据,安然通过$this->check($dataLen100);然后我们执行$this->db->insert('exTable',array('test'=>$dataLen100).可是,经过转义数据的长度已经大于100了,这样会导致怎么?该如何处理?
身是客 发表于 2011-6-7 15:53 static/image/common/back.gif
就算varchar不必考虑,那对于一个char类型的来说呢?
呵呵,数据库表字段的长度设计肯定要留有余地的 表字段长度设计的时候,应该大于代码的规定长度,比如你里你的意思是代码规定test应该不大于100
那么你的表的test字段应该是200或者以上等等,验证的长度应该是在ci这 zhouli520 发表于 2011-6-7 15:11 static/image/common/back.gif
表字段长度设计的时候,应该大于代码的规定长度,比如你里你的意思是代码规定test应该不大于100
那么你的表的 ...
但对于一个varchar(255)呢,把类型改大貌似不是一个好方法,我用escape_str() 和 set($name,$value,FALSE) 和query($sql)来处理,可是感觉很繁琐,很不给力 身是客 发表于 2011-6-7 15:20 static/image/common/back.gif
但对于一个varchar(255)呢,把类型改大貌似不是一个好方法,我用escape_str() 和 set($name,$value,FALSE ...
varchar(m) 变长字符串。M 表示最大列长度。M的范围是0到65,535。(VARCHAR的最大实际长度由最长的行的大小和使用的字符集确定,最大有效长度是65,532字节)。
255不是上限吧 楼上正解...varchar最大长度又不是只有255,你是不是和其他数据库搞混了.... jeongee 发表于 2011-6-7 15:24 static/image/common/back.gif
varchar(m) 变长字符串。M 表示最大列长度。M的范围是0到65,535。(VARCHAR的最大实际长度由最长的行的大 ...
是不是就是说,我们不必考虑数据库自动转义带来的字符长度的增加,是吗? 就算varchar不必考虑,那对于一个char类型的来说呢? 关于varchar(w3school):
保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多 255 个字符。
注释:如果值的长度大于 255,则被转换为 TEXT 类型。
是自己一开始就没考虑好。。。:Q
页:
[1]
2