MYsql的enum字段報錯row,SQLSTATE[01000]: Warning: 1265 Data truncated for column at row 1錯誤代碼解決方法
SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1
因為enum類型只支持數字型數據,而且出錯率高,尤其是在轉移數據的時候,常出錯,簡直是程序員的噩夢。。。
所以推薦使用文本型的varchar等非enum類型的,這樣就OK了
問題現象來源:
/var/www/apache2/error.log
PHP Fatal error: Uncaught PDOException: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'user_reg_ip' at row 1 in /var/www/w/wxApi/vendor/phalapi/notorm/src/NotORM/Result.php:271\nStack trace:\n#0 /var/www/w/wxApi/vendor/phalapi/notorm/src/NotORM/Result.php(271): PDOStatement->execute()\n#1 /var/www/w/wxApi/vendor/phalapi/notorm/src/NotORM/Result.php(397): NotORM_Result->query('INSERT INTO ma...', Array)\n#2 /var/www/w/wxApi/vendor/phalapi/notorm/src/NotORM/Result.php(414): NotORM_Result->insert_multi(Array)\n#3 /var/www/w/wxApi/src/app/Model/Model_User.php(49): NotORM_Result->insert(Array)\n#4 /var/www/w/wxApi/src/app/Domain/Domain_User.php(23): App\\Model\\Model_User->wxRegister('013UvBFa1iuajA0...', '\\xE8\\xAF\\x9A\\xE9\\x93\\xAD', 'https://thirdwx...', '1001', 'xiaoxiao', 'ios')\n#5 /var/www/w/wxApi/src/app/Api/User.php(94): App\\Domain\\Domain_User->wxRegister('013UvBFa1iuajA0...', '\\xE8\\xAF\\x9A\\xE9\\x93\\xAD', 'https://thirdwx...', '1001', 'xiaoxiao', 'ios')\n#6 [internal function]: App\\Api\\User->wxRegister()\n#7 /var/www/w/wxApi in /var/www/w/wxApi/vendor/phalapi/notorm/src/NotORM/Result.php on line 271, referer: https://servicewechat.com/wx5c1f3e3816ec6c32/6/page-frame.html
解決方法:
找到當前使用數據庫中相關表中對應的字段user_reg_ip,把這個字段類型該為varchar,長度設為255,經測試果然成功了
當然最后的方法是在創建改表的sql語句中改表的定義就改為varchar,長度為255,是最好的解決方法。