You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中如何选择名称包含点号的数据库

Laravel连接名称带点号的数据库报错解决方案

问题复现场景

  • 业务需要对接的目标数据库名称包含点号,具体库名为t.produk
  • 在Laravel中配置数据库连接指定该库名时,触发无效标识符报错
  • 尝试直接将库名以普通字符串形式写入配置、写入环境变量,仍复现相同报错

报错原因

MySQL语法中,点号是用于分隔「数据库名.表名」的特殊标识符,未做转义处理的t.produk会被SQL解析器拆分为「t库下的produk表」,自然找不到对应目标。
Laravel底层拼接连接、查询SQL时,默认不会对包含特殊字符的库名、表名自动加转义符,就会触发这个报错。

修复步骤

  • 修改数据库连接配置,将带点号的库名用MySQL标识符转义符(反引号)包裹后填入配置
    • 如果直接修改配置文件config/database.php,对应mysql连接的database项写法如下:
    'mysql' => [
        // 其余host、port、username、password等配置保持原有值不变
        'database' => '`t.produk`',
    ],
    
    • 如果通过.env环境变量配置,直接修改DB_DATABASE项即可:
    DB_DATABASE=`t.produk`
    
  • 清除Laravel的配置缓存,避免旧缓存导致配置不生效:
    php artisan config:clear
    

注意:不要使用斜杠、双引号等方式做转义,MySQL仅识别反引号作为自定义标识符的边界包裹符,转义后解析器会将t.produk识别为完整的单个库名,不会再按点号拆分语义。修改配置时反引号要写在配置值的内部,不要写到包裹配置值的单引号外面。

配置完成后重新发起数据库请求,即可正常连接目标库拉取数据。

内容的提问来源于stack exchange,提问作者Ken Arya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 20:24:09