溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MySQL模式 Strict Mode知識(shí)點(diǎn)詳解

發(fā)布時(shí)間:2020-09-27 00:59:01 來(lái)源:腳本之家 閱讀:165 作者:koda 欄目:MySQL數(shù)據(jù)庫(kù)

I. Strict Mode闡述

根據(jù) mysql5.0以上版本 strict mode (STRICT_TRANS_TABLES) 的限制:

1).不支持對(duì)not null字段插入null值

2).不支持對(duì)自增長(zhǎng)字段插入''值,可插入null值

3).不支持 text 字段有默認(rèn)值

看下面代碼:(第一個(gè)字段為自增字段)

Sql代碼

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

上邊代碼只在非strict模式有效。

Code代碼

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

上邊代碼只在strict模式有效。把空值''換成了NULL.

II.讓數(shù)據(jù)庫(kù)支持Strict Mode

1.對(duì)數(shù)據(jù)庫(kù)結(jié)構(gòu)進(jìn)行以下改進(jìn)來(lái)支持strict mode:

1) 給所有not null字段都設(shè)置非null默認(rèn)值,字符串默認(rèn)值為 '',數(shù)值默認(rèn)值為 0,日期默認(rèn)值為 '0000-00-00 00:00:00'

2) 去掉text字段的默認(rèn)值

3) 規(guī)范化改進(jìn): 把 title 字段統(tǒng)一改為 varchar(255),把有默認(rèn)值的null字段改為not null字段

2.如果安裝的PHP程序數(shù)據(jù)庫(kù)結(jié)構(gòu)關(guān)閉Strict mode

1).一個(gè)是安裝mysql5.0(含以上)版本的時(shí)候去掉strict mode。

編輯 my.cnf,關(guān)閉Strict Mode:

sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

2). 另一個(gè)就是修改查詢語(yǔ)句。例如在

if ($this->dbcharset) {
@mysql_query("SET NAMES ".$this->dbcharset);
}

后面執(zhí)行

mysql_query("SET @@sql_mode = ''");

注意確定你使用的是MySQL5

mysqli方式類似,就是執(zhí)行的是

mysqli_query($this->connection_id, "SET @@sql_mode = ''");

到此這篇關(guān)于MySQL模式 Strict Mode知識(shí)點(diǎn)詳解的文章就介紹到這了,更多相關(guān)MySQL模式 Strict Mode內(nèi)容請(qǐng)搜索億速云以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持億速云!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI