我安裝了 Composer 的 CodeIgniter 專案 (4.1.5)。我在 PHP 8.0.12 上運行它
當我嘗試與資料庫通信時,我收到內部服務器錯誤 500,日志訊息如下:
CRITICAL - 2021-11-13 01:39:18 --> Undefined constant "CodeIgniter\Database\MySQLi\MYSQLI_STORE_RESULT"
#0 D:\Sites\ea4\vendor\codeigniter4\framework\system\Database\Database.php(56): CodeIgniter\Database\Database->initDriver('MySQLi', 'CodeIgniter\\Dat...', Array)
#1 D:\Sites\ea4\vendor\codeigniter4\framework\system\Database\Config.php(78): CodeIgniter\Database\Database->load(Array, 'default')
#2 D:\Sites\ea4\vendor\codeigniter4\framework\system\Model.php(97): CodeIgniter\Database\Config::connect('default')
#3 D:\Sites\ea4\app\Controllers\Backend\Home.php(33): CodeIgniter\Model->__construct()
#4 D:\Sites\ea4\vendor\codeigniter4\framework\system\CodeIgniter.php(824): App\Controllers\Backend\Home->index()
#5 D:\Sites\ea4\vendor\codeigniter4\framework\system\CodeIgniter.php(410): CodeIgniter\CodeIgniter->runController(Object(App\Controllers\Backend\Home))
#6 D:\Sites\ea4\vendor\codeigniter4\framework\system\CodeIgniter.php(318): CodeIgniter\CodeIgniter->handleRequest(NULL, Object(Config\Cache), false)
#7 D:\Sites\ea4\public\index.php(37): CodeIgniter\CodeIgniter->run()
在家庭控制器中,我有以下代碼:
public function index()
{
$session = session();
$data = [];
// Check for post
if ($this->request->getMethod() === 'post') {
// Validate the user input
if (!($this->validate([
'cmsuserEmail' => ['label' => 'E-Mail', 'rules' => 'required|min_length[6]|max_length[50]|valid_email'],
'cmsuserPassword' => ['label' => 'Κωδικ?? πρ?σβαση?', 'rules' => 'required|min_length[8]|max_length[255]'],
]))) {
// Validation has failed, redirect the user back
return redirect()->to(base_url() . '/Backend/Home/index')->withInput();
}
$model = new CmsuserModel();
$user = $model->where('cmsuserEmail', $this->request->getPost('cmsuserEmail'))->first();
// If I try to var_dump user, var_dump is not displayed, if I print string "Debug" and die() one line above, string is printed.
任何人都知道為什么我會收到此錯誤?我應該定義常量 MYSQLI_STORE_RESULT 在哪里?
uj5u.com熱心網友回復:
據我了解,您可以檢查是否安裝了用于PHP的mysqli模塊。
php -m在您的服務器的 cli 上檢查通過,您應該已mysqli列為模塊之一。
我在這里檢查了參考https://www.php.net/manual/en/mysqli.installation.php
我在 docker 上托管的 CodeIgniter 4 檔案上使用了它,我也遇到了這個錯誤。經過一番研究,我只是在映像構建中確保mysqliPHP 模塊正在安裝/安裝。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/359570.html
