普通做法是:

用户通过手机号注册。默认是根据这个手机号去用户表里查询,看有没有这个手机号,有那么就提示已注册。否则就执行注册插入数据库操作。这里其实正常注册流程是两次数据库操作的(查询,插入);

优化做法:

手机号设置为唯一索引。直接执行插入操作。这里利用了MySQL的报错机制;如果插入的手机号 跟数据库里的有重复,那么调用MySQL方法mysql_errno() 可以看到是是1062;1062 代表插入的手机号数据库里已经存在。插入失败。这样就可以知道。数据库里是否已经有这个用户了。只操作了一次插入操作;

附 mysql_errno部分常用 错误代码解释

1005: 创建表失败
1006: 创建数据库失败
1007: 数据库已存在,创建数据库失败
1008: 数据库不存在,删除数据库失败
1009: 不能删除数据库文件导致删除数据库失败
1010: 不能删除数据目录导致删除数据库失败
1011: 删除数据库文件失败
1012: 不能读取系统表中的记录
1016: 无法打开文件
1020:记录已被其他用户修改
1021:硬盘剩余空间不足,请加大硬盘可用空间
1022:关键字重复,更改记录失败
1023:关闭时发生错误
1024:读文件错误
1025:更改名字时发生错误
1026:写文件错误
1032:记录不存在
1036:数据表是只读的,不能对它进行修改
1037:系统内存不足,请重启数据库或重启服务器
1038:用于排序的内存不足,请增大排序缓冲区
1040:已到达数据库的最大连接数,请加大数据库可用连接数
1041:系统内存不足
1042:无效的主机名
1043:无效连接
1044:当前用户没有访问数据库的权限
1045:不能连接数据库,用户名或密码错误
1040: 最大连接数
1048:字段不能为空
1049:数据库不存在
1050:数据表已存在
1051:数据表不存在
1054:字段不存在
1065:无效的SQL语句,SQL语句为空
1081:不能建立Socket连接
1114:数据表已满,不能容纳任何记录
1116:打开的数据表太多
1129:数据库出现异常,请重启数据库
1130:连接数据库失败,没有连接数据库的权限
1133:数据库用户不存在
1141:当前用户无权访问数据库
1142:当前用户无权访问数据表
1143:当前用户无权访问数据表中的字段
1146:数据表不存在
1147:未定义用户对数据表的访问权限
1149:SQL语句语法错误
1158:网络错误,出现读错误,请检查网络连接状况
1159:网络错误,读超时,请检查网络连接状况
1160:网络错误,出现写错误,请检查网络连接状况
1161:网络错误,写超时,请检查网络连接状况
1062:字段值重复,入库失败

最新文章

  1. Web语义化
  2. 我的DbHelper数据操作类
  3. POJ3613 Cow Relays(矩阵快速幂)
  4. 玩转单元测试之Testing Spring MVC Controllers
  5. Mono addin 学习笔记 2
  6. vim 正则替换
  7. linux apache 配置fastcgi
  8. 如何提高手机APP的用户体验?
  9. 【转】Nginx系列(五)--nginx+tomcat实现负载均衡
  10. Android 数字签名学习笔记
  11. 创业路(VC Pipeline),创业需要融资的阅读
  12. 比Spring简单的IoC容器
  13. 面试题:实现一个方法clone;可以对js五种数据类型进行值复制
  14. ural 1353. Milliard Vasya's Function(dp)
  15. WPF开发进阶 - Fody/PropertyChanged(二)
  16. APP软件半成品测试技巧
  17. js中的浅复制和深复制
  18. [复现]蝉知cms 5.6 前台注入
  19. ssh架构之hibernate(二)进阶学习
  20. 修改vs2012 颜色

热门文章

  1. java_缓冲流(文件内容排序)
  2. 2019-9-2-贡献自己的服务器搭建tor中转
  3. JS数组 团里添加新成员(向数组增加一个新元素)只需使用下一个未用的索引,任何时刻可以不断向数组增加新元素。myarray[5]=88;
  4. RuntimeError: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a framework. See the Python documentation for more infor
  5. HDU3480 Division——四边形不等式或斜率优化
  6. openssl操作公私钥和加解密的一些常用命令
  7. System.Web.Mvc.HttpUnauthorizedResult.cs
  8. spring boot项目搭建中遇到的问题
  9. 【转】 解释下浏览器是如何判断元素是否匹配某个 CSS 选择器?
  10. Joining Byte Blocks(哈希+带花树)