mysql严格模式 报错_代码一上传服务器就报错-尝试开启 MySQL 严格模式
先前遇到過(guò)一個(gè)非常奇怪的問(wèn)題,寫(xiě) MySQL 數(shù)據(jù)庫(kù)的 web 程序的時(shí)候,在自己本機(jī)環(huán)境下跑的好好的,一上傳到遠(yuǎn)程服務(wù)器環(huán)境上,就各種報(bào)錯(cuò),各種異常。一般來(lái)講,問(wèn)題的根源多半是環(huán)境差異導(dǎo)致的,且大概率是因?yàn)樽约旱拇a寫(xiě)的確實(shí)有問(wèn)題。可以首先去排查是否是本機(jī)沒(méi)有開(kāi)啟 MySQL 嚴(yán)格模式。
很多人的本機(jī) MySQL 環(huán)境是來(lái)自于網(wǎng)上流行的那種打包好的組件之一,比如說(shuō) xampp、PHPStudy 之類(lèi),這些套件中的 MySQL 多半是沒(méi)有開(kāi)啟嚴(yán)格模式(STRICT_TRANS_TABLES)。嚴(yán)格模式和非嚴(yán)格模式的區(qū)別就在于,嚴(yán)格模式會(huì)對(duì)數(shù)據(jù)類(lèi)型、長(zhǎng)度、格式等包括主鍵進(jìn)行嚴(yán)格校驗(yàn),但凡數(shù)據(jù)有不一致,則會(huì)報(bào)錯(cuò),非嚴(yán)格模式則會(huì)進(jìn)行一定程度的寬容,親測(cè),如果一個(gè)字段設(shè)置為不可為空,SQL 執(zhí)行的時(shí)候送的空,SQL 可以正常執(zhí)行成功。
對(duì)于本機(jī)開(kāi)發(fā)環(huán)境來(lái)講,為了避免麻煩,最好開(kāi)啟嚴(yán)格模式。
開(kāi)啟方式1:
執(zhí)行 SQL 語(yǔ)句
set sql_mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";
開(kāi)啟方式2:
修改配置文件,一般配置文件為 my.ini 或 my.cnf 。找到 sql-mode 修改為如下內(nèi)容。
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
總結(jié)
以上是生活随笔為你收集整理的mysql严格模式 报错_代码一上传服务器就报错-尝试开启 MySQL 严格模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql支撑union_mysql 不
- 下一篇: mysql 数据类型 int_MySQL