dbprefix 不区分大小写,仅作字符串拼接,实际大小写敏感性由数据库系统变量 lower_case_table_names 决定:linux 默认区分,windows/macos 默认不区分;建议统一用小写前缀如 'app_' 并小写建表以确保跨平台兼容。

DBPrefix 不区分大小写,但它的实际效果取决于你数据库表名本身的大小写敏感性,而不是 CodeIgniter 框架层面做大小写校验。
DBPrefix 本身不校验大小写
CI4 的 Database.php 配置中,'DBPrefix' => 'myapp_' 这个值只是字符串拼接前缀,框架不会检查它是否大写、小写或混合。无论你写成 'myapp_'、'MYAPP_' 或 'MyApp_',CI4 都照单全收,原样加到表名前面。
真正起作用的是数据库的表名规则
MySQL 表名是否区分大小写,由系统变量 lower_case_table_names 决定:
- Linux 默认为
0:表名区分大小写 →myapp_users和MYAPP_USERS是两个不同表; - Windows/macOS 默认为
1:表名转小写存储 → 实际都变成myapp_users,大小写写法无差别。
所以如果你设了 'DBPrefix' => 'MyApp_',而数据库里建的是 myapp_users,在 Linux 环境下就会报“表不存在”——不是 CI4 报错,是 MySQL 找不到 MyApp_users 这张表。
建议做法
- 统一用小写字母加下划线定义前缀,例如
'dbprefix' => 'app_'; - 建表时也全部小写(
app_users、app_posts),避免跨平台迁移出问题; - CI4 配置字段名是
'DBPrefix'(注意 PascalCase),但值的内容本身无大小写限制。











