下面是代碼,同樣的代碼,同樣的資料庫表,在本地的wamp環境,就報下面的錯誤。
伺服器上的LAMP,就沒問題。
最近突然有這個錯誤的,過去的幾個月,都正常的。
問題是,我的資料庫表裡,根本就沒alias這個欄位,它是哪裡來的?
//寫資料庫//---------------------$data['user_mail'] = $user_mail;$data['user_name'] = $user_name;$data['pass_word'] = md5($pass_word);$data['last_time'] = date('Y-m-d H:i:s');$addRes = $usr -> add($data);\Think\log::record("6");
ERR: SQLSTATE[HY000]: General error: 1364 Field 'alias' doesn't have a default value
回複內容:
下面是代碼,同樣的代碼,同樣的資料庫表,在本地的wamp環境,就報下面的錯誤。
伺服器上的LAMP,就沒問題。
最近突然有這個錯誤的,過去的幾個月,都正常的。
問題是,我的資料庫表裡,根本就沒alias這個欄位,它是哪裡來的?
//寫資料庫//---------------------$data['user_mail'] = $user_mail;$data['user_name'] = $user_name;$data['pass_word'] = md5($pass_word);$data['last_time'] = date('Y-m-d H:i:s');$addRes = $usr -> add($data);\Think\log::record("6");
ERR: SQLSTATE[HY000]: General error: 1364 Field 'alias' doesn't have a default value
欄位緩衝導致的,你把runtime目錄下面的所有東西全部刪掉,不包括runtime目錄本身。但是前提是你的偵錯模式是false,這樣才會使用緩衝,另外,我建議你給alias欄位增加一個預設值,否則,可能是開發環境與線上環境不一致的原因。
這跟tp毛關係都沒有。
善用google, http://blog.csdn.net/god8816/article/details/8593419
是否開啟了mysql的 strict mode ?
你出現的這個錯誤說明你的插入語句缺少對alias的值, 然後表結構中又沒有給alias欄位定義預設值;
不應該通過該 mysql的sql_mode來隱藏問題或通過資料庫隱式處理問題。