使用ci框架php報錯:Call to a member function real_escape_string() on a non-object in .../mysqli_driver.php

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';
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章