很多集成的PHP环境(PHPnow WAMP Appserv等)自带的MySQL貌似都没有开启MySQL的严格模式,何为MySQL的严格模式,简单来说就是MySQL自身对数据进行严格的校验(格式、长度、类型等),比如一个整型字段我们写入一个字符串类型的数据,在非严格模式下MySQL不会报错,同样如果定义了char或varchar类型的字段,当写入或更新的数据超过了定义的长度也不会报错。我认为这个对于编程来说没有任何好处,虽然我们尽量在代码中做数据校验。MySQL开启了严格模式从一定程序上来讲师对我们代码的一种测试,如果我们的开发环境没有开启严格模式在开发过程中也没有遇到错误,那么在上线或代码移植的时候将有可能出现不兼容的情况,因此在开发过程做最好开启MySQL的严格模式。

如何开启?

1.可以通过执行SQL语句来开启,但是只对当前连接有效,下面是SQL语句:

set sql_mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";
2.通过修改MySQL的配置文件,在配置文件中查找sql-mode,将此行修改成为: sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
如果查找不到sql-mode=则在[mysqld]下加入即可,推荐第二种方法,可以一劳永逸。

最新文章

  1. Ubuntu上安装Minecraft服务器
  2. CocoaPods的版本升级
  3. C++ 文件读取
  4. 通过实验窥探javascript的解析执行顺序
  5. 关于fseek和文件"ab+"打开方式的问题
  6. oracle server配置:监听程序未启动或数据库服务未注册到该监听程序
  7. 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接
  8. Centos7安装Oracle JDK
  9. js正则表达式的使用
  10. WINFORM数据库操作,有点像安装里面的SQLITE
  11. Windows下Oracle 11g的安装
  12. android 测试
  13. BJOI2018简要题解
  14. (1.13)mysql优化数据库对象
  15. word2013怎样批量重设图片和大小?(转)
  16. 内容方框 fieldset
  17. [A,D]=solverAdini(node,elem,bdEdge,h1,h2)
  18. linux安装redis+RedisDesktopManager
  19. ubuntu 指令修改时区 tzselect
  20. Python __getattribute__ vs __getattr__

热门文章

  1. 修正了Model1模式,进入如今盛行的的Model2模式,也就是MVC模式
  2. HDOJ3579Hello Kiki
  3. MongoDB之几种情况下的索引选择策略
  4. Typora中本地图片无法上传CSDN解决方案
  5. linux 安装mysql 可能遇到的小问题
  6. Vue 动态设置图片路径
  7. 【pwn】学pwn日记(堆结构学习)
  8. Choregraphe 2.8.6.23动作失效
  9. pytest文档8-参数化(parametrize)结合allure.title()生成不同标题报告
  10. java-异常-编译时检测异常和运行时异常区别(throws和throw区别)