I. Strict Mode阐述 
根据 mysql5.0以上版本 strict mode (STRICT_TRANS_TABLES) 的限制:

1).不支持对not null字段插入null值 
2).不支持对自增长字段插入''值,可插入null值 
3).不支持 text 字段有默认值

看下面代码:(第一个字段为自增字段)

  1. $query="insert into demo values('','$firstname','$lastname','$sex')";

上边代码只在非strict模式有效。

  1. $query="insert into demo values(NULL,'$firstname','$lastname','$sex')";

上边代码只在strict模式有效。把空值''换成了NULL.

II.让数据库支持Strict Mode

1.对数据库结构进行以下改进来支持strict mode: 
1) 给所有not null字段都设置非null默认值,字符串默认值为 '',数值默认值为 0,日期默认值为 '0000-00-00 00:00:00' 
2) 去掉text字段的默认值 
3) 规范化改进: 把 title 字段统一改为 varchar(255),把有默认值的null字段改为not null字段

2.如果安装的PHP程序数据库结构关闭Strict mode 
1).一个是安装mysql5.0(含以上)版本的时候去掉strict mode。 
编辑 my.cnf,关闭Strict Mode: 
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

2). 另一个就是修改查询语句。例如在 
if ($this->dbcharset) { 
   @mysql_query("SET NAMES ".$this->dbcharset); 

后面执行 
mysql_query("SET @@sql_mode = ''");

注意确定你使用的是MySQL5

mysqli方式类似,就是执行的是 
mysqli_query($this->connection_id, "SET @@sql_mode = ''");

MySQL模式 : Strict Mode的更多相关文章

  1. mysql 严格模式 Strict Mode说明(text 字段不能加默认或者 不能加null值得修改方法)

    mysql 严格模式 Strict Mode说明 1.开启与关闭Strict Mode方法找到mysql安装目录下的my.cnf(windows系统则是my.ini)文件 在sql_mode中加入ST ...

  2. mysql 严格模式 Strict Mode

    mysql 严格模式 Strict Mode 找到MySQL安装目录下的my.cnf(windows系统则是my.ini)文件 在sql_mode中加入STRICT_TRANS_TABLES则表示开启 ...

  3. mysql 严格模式 Strict Mode说明(转)

    转自https://www.cnblogs.com/jhcelue/p/7290243.html 1.开启与关闭Strict Mode方法 找到mysql安装文件夹下的my.cnf(windows系统 ...

  4. mysql 严格模式 Strict Mode说明

    1.开启与关闭Strict Mode方法 找到mysql安装文件夹下的my.cnf(windows系统则是my.ini)文件 在sql_mode中增加STRICT_TRANS_TABLES则表示开启严 ...

  5. JavaScript严谨模式(Strict Mode)

    下面的内容翻译自It’s time to start using JavaScript strict mode,作者Nicholas C.Zakas参与了YUI框架的开发,并撰写了多本前端技术书籍,在 ...

  6. Hive 2、Hive 的安装配置(本地MySql模式)

    一.前提条件 安装了Zookeeper.Hadoop HDFS HA  安装方法: http://www.cnblogs.com/raphael5200/p/5154325.html 二.安装Mysq ...

  7. Javascript 严格模式(strict mode)详解

    Javascript 严格模式详解   一.概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode).顾名思义,这种模式使得Ja ...

  8. Javascript 严格模式 strict mode(转)

    一.概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode).顾名思义,这种模式使得Javascript在更严格的条件下运行. ...

  9. Redis+Mysql模式和内存+硬盘模式的异同

    http://www.open-open.com/lib/view/open1346029825942.html 学习任何新知识,都是一个循序渐进的过程,从刚开始的懵懂无知,到简单熟悉,然后突然的彻悟 ...

随机推荐

  1. Set Matrix Zeroes -- LeetCode

    原题链接: http://oj.leetcode.com/problems/set-matrix-zeroes/ 这是一个矩阵操作的题目,目标非常明白,就是假设矩阵假设有元素为0,就把相应的行和列上面 ...

  2. 安卓MonkeyRunner源码分析之启动

    在工作中因为要追求完成目标的效率,所以更多是强调实战,注重招式,关注怎么去用各种框架来实现目的.但是如果一味只是注重招式,缺少对原理这个内功的了解,相信自己很难对各种框架有更深入的理解. 从几个月前开 ...

  3. jQuery UI框架

    jQuery UI框架 1.oschina开源社区-jQuery教程 2.jQuery PrimeUI(推荐) 3.弹出框.警告框.提示框.拖动支持.位置固定.选项卡切换 4.Bootstrap框架( ...

  4. 四种方案:将OpenStack私有云部署到Hadoop MapReduce环境中

    摘要:OpenStack与Hadoop被誉为继Linux之后最有可能获得巨大成功的开源项目.这二者如何结合成为更猛的新方案?业内给出两种答案:Hadoop跑在OpenStack上或OpenStack部 ...

  5. Spring之单元测试

    引言 是否在程序运行时使用单元测试是衡量一个程序员素质的一个重要指标.使用单元测试既可以让我检查程序逻辑的正确性还可以让我们减少程序测试的BUG,便于调试可以提高我们写程序的效率.以前我们做单元测试的 ...

  6. C# File类的操作

    原文:C# File类的操作 File类,是一个静态类,主要是来提供一些函数库用的.静态实用类,提供了很多静态的方法,支持对文件的基本操作,包括创建,拷贝,移动,删除和打开一个文件.File类方法的参 ...

  7. CRT

    G - 中国剩余定理 Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submit S ...

  8. EnterpriseLibrary 6.0(微软企业库6.0学习笔记) 之Data Access Block 配置和获取链接字符串

    EnterpriseLibrary 的特点是快速开发,融合了微软工程师多年的经验,现在在微软内部有专门的一个小组在完善EnterpriseLibray,最近的更新时间是April 2013. 相关链接 ...

  9. Centos中如何配置Texlive2013中文字体的问题

    Centos中如何配置Texlive2013中文字体的问题: 第一步是下载你需要的字体,我从windows/fonts中拷贝的比较多,你只要复制你需要的字体即可. 注意只要文件扩展名为ttf的文件,t ...

  10. 解决nexus下载maven索引的问题

    解决nexus下载maven索引的问题 (2011-10-12 17:48:46) 转载▼ 标签: it 分类: java 转自 http://www.colorfuldays.org/program ...