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

mysql用的$stmt语句,所有转义不用担心,但是长度有必要在后台经过php检测后再放到mysql语句中吗..?测试发现超过长度mysql似乎会自己返回错误.考虑到效率所以如果php不用检测的话就不检测。但是又怕出问题,请教下老鸟们一般怎么处理.

不需要,存入数据库的都是用户输入进去的,最好在数据库里保持完整的数据。如果你担心读取数据时在页面显溢出的话,再显示的时候截取呗追问

大概明白了了,还是再问清楚点好,比如mysql我有一个字段设置为char,长度30,也就是用户名不应该超过30个字,前台js截取30,但是对于那些绕过表单,伪造表单的传40个过来,虽然mysql会返回一个错误吧。但是这之前有必要用php加一层长度检查不,也就是说不管伪不伪造表单,在mysql取得数据的时候字符串的长度都是在30以内?

追答

嗯,这些需要前台表单提交的时候在onsubmit函数中校验,如果大于30就不给表单提交,提示用户修改字数;最好的当然也是在php端也判断下长度,这就是BS架构两端都校验,浏览器端校验为了的是用户体验度,你不能让用户提交一次二次都不成功,那样很烦;php判断就是为了安全性了。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-01-14
如果数据有长度限制,前台验证还是必要的,这样可以减轻你数据库的负担.

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

毕竟,相比之下,更消耗资源的是数据传输和数据库的操作,而不是js验证本回答被网友采纳
第2个回答  2013-01-16
首先你要了解什么是数据库,数据库只是存放数据的地方,一切的判断和运算能不再数据库中就不再数据库中操作,判断字符串的长度这么基础当然用php完成了(用js当然也可以),还有就是你要搞清楚一个字符串占几个字符,gbk下的一个汉字占2个字符,utf8下的一个汉字占三个字符,所以你数据库给长度的时候要注意,还有就是建议你往数据库中添加数据的时候最好先进行转码,将字符的编码转成gbk的存进去,拿出来在转化成utf8的用以兼容,这样能减少数据库的压力和空间,这是我的一点经验
最后你一定要记住,以后编程也要记住,数据库只是一个存储数据的地方,能不用数据库运算的千万别用

MYSQL数据库使用phpadmin导入SQL文件超时失败原因?
在使用phpAdmin导入SQL文件时,如果文件大小超过2M,可能会遇到超时失败的问题。这个问题主要是由于浏览器的超时设置和服务器上传附件大小的限制导致的。当导入的.sql文件过大,可能会超过浏览器允许的上传时间或服务器接收的文件大小限制,从而引起导入超时。解决这个问题,可以尝试将大文件分批导出为多个小于2...

MySQL一条SQL语句最大执行长度mysql一条sql最大
在MySQL数据库中,一条SQL语句最大执行长度限制是非常重要的。MySQL数据库是一个开源的关系型数据库管理系统,提供了高性能、稳定性和可扩展性,并被各类企业、网站、应用程序广泛使用。但是,在这个高效的数据库系统中,一条SQL语句最大执行长度限制会影响数据库的运行效率和稳定性。根据MySQL的规定,一...

基于MYSQL的数据库管理系统用哪种语言写容易,PHP,delphi 还是什么jsp...
看需求咯,如果是做成B\/S的数据库管理软件建议使用PHP或JSP,毕竟这两种语言实现B\/S架构的数据库可能会方便点。如果是做成C\/S的数据库管理软件,建议使用DELPHI,虽然DELPHI也可以使用intraweb组件以及TMS(第三方控件)来开发基于B\/S架构的数据库软件,但是用户界面就比较一般,但也不可否认,delphi在数据...

php对mysql数据库操作的几个问题
首先你的问题有些太大,你提的问题里有数据库的设计问题和源代码问题,我只能说个大概,希望对你有帮助,推荐参看wordpress的源代码,很不错,进入正文:文章一定会设计为一个表,如table_article,这里有相应的字段如title,content,publish_time,这里需要审核的话可以加入一个字段如is_or_not,这样在...

php中和mysql数据库连接时,字符串的拼接实在让人头疼,到底是个什么语法...
最简单的方法就是一个一个拼接啊,如果是字符串,加引号,比如:a=1;$b="abc"$sql="SELECT * FROM users WHERE a=".$a." AND b='".$b."'";如果解决了您的问题请采纳!如果未解决请继续追问

php+mysql优化,百万至千万级快速分页mysql性能到底能有多高
$strid=substr($strid,0,strlen($strid)-1); \/\/构造出id字符串$db->pagesize=0; \/\/很关键,在不注销类的情况下,将分页清空,这样只需要用一次数据库连接,不需要再开;$db->execute("select id,title,url,sTime,gTime,vtype,tag from collect where id in ($strid)"); < php while($rs=$db->...

php为什么弃用了mysql
1、mysql函数已在PHP5.5中正式弃用,并将在PHP7中被删除。2、mysql函数缺少面向对象的接口。3、mysql函数不支持以下特性:不支持非阻塞连续获取 不支持异步查询 不支持参数化查询 不支持存储过程 不支持多个语句 不支持在MySQL 5.1的中所有功能 不支持加密(SSL)不支持压缩 不支持完整的字符集 ...

关于php连接mysql数据库mysql_connect()几个概念混乱的地方,求解释_百 ...
不同的账号以及相同的账号,一个客户端连接就算一个,同一个用户名可以被多个客户端同时连接 第二个问题 其实还是和客户端相关联的,100个连接的话,你开100个页面,每个页面不要共用连接资源变量,都重新建立连接,一般是使用mysql_pconnect 持久连接,同一个账号密码,采用同一个链接链路,

用php+mysql做网站,数据库操作需要到什么水平?
现在大多数数据库都提供图形化管理界面,比如 MySQL 的 MySQL Workbench,操作起来非常方便。另外,在实际应用中还包括优化等过程,有时还要使用集群或缓存来提升数据库系统的性能,不过这些问题在刚开始时就没必要考虑了,其实数据库管理应该有专人负责,也不需要程序员操心,了解即可。刚刚开始接触数据库...

mysql中,我想用一个新用户直接创建数据库不行吗?一定要用root用户创建数...
root用户是系统默认的超级管理员,权限是最高的,当然可以管理任何用户建立的数据库了。你新建的ppamdin可以取得管理权限,但不是最高的权限,它只能管理被root授权管理的数据库以及执行root授权的操作命令。所以说你希望的root看不到pppadmin建立的数据库这个想法是办不到的,虽然root可以无视它 ...

相似回答