D.B*_*.B. 3 php mysqli codeigniter codeigniter-4
我已经使用 Composer 安装了 CodeIgniter 项目 (4.1.5)。我在 PHP 8.0.12 上运行它
\n当我尝试与数据库通信时,出现内部服务器错误 500,日志消息如下:
\nCRITICAL - 2021-11-13 01:39:18 --> Undefined constant "CodeIgniter\\Database\\MySQLi\\MYSQLI_STORE_RESULT"\n#0 D:\\Sites\\ea4\\vendor\\codeigniter4\\framework\\system\\Database\\Database.php(56): CodeIgniter\\Database\\Database->initDriver('MySQLi', 'CodeIgniter\\\\Dat...', Array)\n#1 D:\\Sites\\ea4\\vendor\\codeigniter4\\framework\\system\\Database\\Config.php(78): CodeIgniter\\Database\\Database->load(Array, 'default')\n#2 D:\\Sites\\ea4\\vendor\\codeigniter4\\framework\\system\\Model.php(97): CodeIgniter\\Database\\Config::connect('default')\n#3 D:\\Sites\\ea4\\app\\Controllers\\Backend\\Home.php(33): CodeIgniter\\Model->__construct()\n#4 D:\\Sites\\ea4\\vendor\\codeigniter4\\framework\\system\\CodeIgniter.php(824): App\\Controllers\\Backend\\Home->index()\n#5 D:\\Sites\\ea4\\vendor\\codeigniter4\\framework\\system\\CodeIgniter.php(410): CodeIgniter\\CodeIgniter->runController(Object(App\\Controllers\\Backend\\Home))\n#6 D:\\Sites\\ea4\\vendor\\codeigniter4\\framework\\system\\CodeIgniter.php(318): CodeIgniter\\CodeIgniter->handleRequest(NULL, Object(Config\\Cache), false)\n#7 D:\\Sites\\ea4\\public\\index.php(37): CodeIgniter\\CodeIgniter->run()\nRun Code Online (Sandbox Code Playgroud)\n在家庭控制器中,我有以下代码:
\npublic function index()\n{\n $session = session();\n $data = [];\n // Check for post\n if ($this->request->getMethod() === 'post') {\n // Validate the user input\n if (!($this->validate([\n 'cmsuserEmail' => ['label' => 'E-Mail', 'rules' => 'required|min_length[6]|max_length[50]|valid_email'],\n 'cmsuserPassword' => ['label' => '\xce\x9a\xcf\x89\xce\xb4\xce\xb9\xce\xba\xcf\x8c\xcf\x82 \xcf\x80\xcf\x81\xcf\x8c\xcf\x83\xce\xb2\xce\xb1\xcf\x83\xce\xb7\xcf\x82', 'rules' => 'required|min_length[8]|max_length[255]'],\n ]))) {\n // Validation has failed, redirect the user back\n return redirect()->to(base_url() . '/Backend/Home/index')->withInput();\n }\n $model = new CmsuserModel();\n $user = $model->where('cmsuserEmail', $this->request->getPost('cmsuserEmail'))->first();\n // 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.\nRun Code Online (Sandbox Code Playgroud)\n任何人都知道为什么我会收到此错误?我应该定义常量 MYSQLI_STORE_RESULT 并在哪里定义?
\n小智 5
据我了解,您可以检查是否安装了PHP的mysqli模块。
php -m在服务器的 cli 上检查 via ,您应该已将mysqli其列为模块之一。
我在这里检查了参考https://www.php.net/manual/en/mysqli.installation.php
我在 docker 上托管的 CodeIgniter 4 文件上使用了这个,我也遇到了这个错误。经过一番研究,我只是确保在映像构建中mysqli安装/安装了 PHP 模块。