Codeigniter 3有啥新玩意

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeigniter 3有啥新玩意相关的知识,希望对你有一定的参考价值。

参考技术A   Codeigniter 源码托管在github,我们可以看到最新版本为3.0-dev,让我们来看看有什么新玩意。
  新的 VIEWPATH 常量定义,可以定义 views 路径
  错误模板(error_xxx.php)文件移到了 VIEWPATH/errors目录
  SHOW_DEBUG_BACKTRACE 常亮定义,用于发生PHP错误时显示完整的 debug backtrace
  大部分方法的注释 @return 标签都定义了实际的返回对象,方便ide自动完成
  缓存系统新增redis、wincache,新增memcached.php配置文件(config目录)
  Session类库支持PHP原生session和原来的cookie session
  数据库新增对sqllite3和ibase的支持
  目前就发现这么多,现在距Codeigniter 3.0正式版发布还有一段时间,说不定到时候还会增加更多好东东。本回答被提问者和网友采纳

CodeIgniter 4 项目中未定义的常量“CodeIgniter\Database\MySQLi\MYSQLI_STORE_RESULT”

【中文标题】CodeIgniter 4 项目中未定义的常量“CodeIgniter\\Database\\MySQLi\\MYSQLI_STORE_RESULT”【英文标题】:Undefined constant "CodeIgniter\Database\MySQLi\MYSQLI_STORE_RESULT" in CodeIgniter 4 projectCodeIgniter 4 项目中未定义的常量“CodeIgniter\Database\MySQLi\MYSQLI_STORE_RESULT” 【发布时间】:2021-12-25 06:32:52 【问题描述】:

我已经使用 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()

在 Home 控制器中,我有以下代码:

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 吗?

【问题讨论】:

【参考方案1】:

据我了解,你可以检查PHP的mysqli模块是否安装。

通过服务器 cli 上的 php -m 检查,您应该将 mysqli 列为模块之一。

我在这里查看了参考https://www.php.net/manual/en/mysqli.installation.php

我在 docker 上托管的 CodeIgniter 4 文件上使用了这个,我也收到了这个错误。经过一番研究,我只是在图像构建中确保正在安装/安装 PHP 的 mysqli 模块。

【讨论】:

以上是关于Codeigniter 3有啥新玩意的主要内容,如果未能解决你的问题,请参考以下文章

TS16949第四版有啥新变化?

数据标注行业有啥新的趋势吗?

python-is-python-2 包...有啥新东西吗?

在 Android WebView 中自动播放嵌入的 YouTube 视频有啥新技巧吗?

小笔记 - Swift 有啥新东西

unity2019有啥新特性?怎么激活unity2019最新版