Laravel做MySQL資料操作時報錯:SQLSTATE [HY000]: General error: 2036
今天在CentOS作業系統下搭建PHP環境,預設使用的是php-mysql的php資料庫操作驅動,準備讓Laravel專案跑起來時,沒成功,在通過Laravel操作MySQL資料庫時報錯:SQLSTATE [HY000]: General error: 2036
解決方法有兩種:
1. 關閉laravel mysql的嚴格模式(config/database.php strict項),不過這樣子會出現一個小小的問題,就是資料型別的約束不能在進行模型操作時丟擲異常了,例如資料表中有content欄位,資料型別varchar(191),通過Eleqount模型建立一條資料,如果content欄位字元長度在插入時超過191,將不會再丟擲異常了(並且strict模式被關閉後可能會帶來一些其它的隱性問題),但是真實插入到MySQL的時候將會被截斷成191
2. 將php的mysql驅動從 php-mysql 更換為 php-mysqlnd (這是一個php擴充套件,用於操作資料庫的驅動,可以用帶代替php-mysql)
關於mysqlnd的介紹:(引用自: