mysql做数据库有必要用php限制字符串长度吗?

mysql用的$stmt语句,所有转义不用担心,但是长度有必要在后台经过php检测后再放到mysql语句中吗..?测试发现超过长度mysql似乎会自己返回错误.考虑到效率... mysql用的$stmt语句,所有转义不用担心,但是长度有必要在后台经过php检测后再放到mysql语句中吗..?测试发现超过长度mysql似乎会自己返回错误.考虑到效率所以如果php不用检测的话就不检测。但是又怕出问题,请教下老鸟们一般怎么处理. 展开
 我来答
百度网友677c730
2013-01-14 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:122
采纳率:0%
帮助的人:67.8万
展开全部
不需要,存入数据库的都是用户输入进去的,最好在数据库里保持完整的数据。如果你担心读取数据时在页面显溢出的话,再显示的时候截取呗
追问
大概明白了了,还是再问清楚点好,比如mysql我有一个字段设置为char,长度30,也就是用户名不应该超过30个字,前台js截取30,但是对于那些绕过表单,伪造表单的传40个过来,虽然mysql会返回一个错误吧。但是这之前有必要用php加一层长度检查不,也就是说不管伪不伪造表单,在mysql取得数据的时候字符串的长度都是在30以内?
追答
嗯,这些需要前台表单提交的时候在onsubmit函数中校验,如果大于30就不给表单提交,提示用户修改字数;最好的当然也是在php端也判断下长度,这就是BS架构两端都校验,浏览器端校验为了的是用户体验度,你不能让用户提交一次二次都不成功,那样很烦;php判断就是为了安全性了。
果爸老石
2013-01-14 · TA获得超过813个赞
知道小有建树答主
回答量:538
采纳率:75%
帮助的人:174万
展开全部
如果数据有长度限制,前台验证还是必要的,这样可以减轻你数据库的负担.

前台验证一般用js,这样就把不合要求的数据拦截在了客户端,因为没有必要提交到服务端嘛.等数据库自己报错,消耗资源会更多.你觉得呢?

毕竟,相比之下,更消耗资源的是数据传输和数据库的操作,而不是js验证
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱狗鸡一万年
2013-01-16
知道答主
回答量:29
采纳率:100%
帮助的人:11.5万
展开全部
首先你要了解什么是数据库,数据库只是存放数据的地方,一切的判断和运算能不再数据库中就不再数据库中操作,判断字符串的长度这么基础当然用php完成了(用js当然也可以),还有就是你要搞清楚一个字符串占几个字符,gbk下的一个汉字占2个字符,utf8下的一个汉字占三个字符,所以你数据库给长度的时候要注意,还有就是建议你往数据库中添加数据的时候最好先进行转码,将字符的编码转成gbk的存进去,拿出来在转化成utf8的用以兼容,这样能减少数据库的压力和空间,这是我的一点经验
最后你一定要记住,以后编程也要记住,数据库只是一个存储数据的地方,能不用数据库运算的千万别用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式