ci框架版本:3.1.10
現象:本地跑的好好的,上了測試環境,突然就報錯了
排查步驟:
- 遇到問題,肯定是追代碼,發現$this->conn_id不存在;
- 繼續追,發現是DB_driver.php在初始化函數initialize()裏面,$this->conn_id沒有生成,但繼續執行了,沒有報數據庫連接錯誤;
- 就順着initialize()往前找,找到了system/database/DB.php裏面,發現有初始化CI_DB_mysqli_driver 的類;
- 就把初始化傳的參數打印出來,發現是數據庫連接參數錯誤;
- 查明爲什麼參數傳的不對,原來是環境變量錯誤;
- 命令行(cli)調用的環境變量,沒有使用nginx配置;
解決辦法:
- 執行腳本命令之前,加上
export CI_ENV='testing';