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

如何将MySQL查询结果转为指定格式数组?多语言翻译器开发求助

解决MySQL查询结果转指定格式数组的问题

嘿,我来帮你搞定这个翻译器的数组转换问题!你的现有代码有几个关键问题,我一步步给你修正并解释清楚:

首先,先说说你代码里的明显错误

  1. 变量未加$符号:你写的t_name是无效的PHP变量,必须加上$前缀;
  2. 数组赋值逻辑完全错误:你只是把字段名字符串塞进数组,根本没用到数据库查询出来的实际值;
  3. *废弃的mysql_函数:mysql_query这类函数在PHP 5.5之后就被废弃了,现在主流用mysqli或PDO,旧函数不仅不安全,还会在新版本PHP里报错。

修正后的完整代码

我用mysqli(最常用的替代方案)给你写了符合需求的代码,结构完全匹配你要的$_name = array($_en, $_ru, $_ua)格式:

// 1. 先建立数据库连接(替换成你的数据库账号密码)
$dbConn = mysqli_connect('localhost', '你的用户名', '你的密码', '你的数据库名');
if (!$dbConn) {
    die('数据库连接失败:' . mysqli_connect_error());
}

// 2. 执行查询(调整字段顺序,让结果更贴合你要的数组顺序)
$queryResult = mysqli_query($dbConn, "SELECT t_name, t_en, t_ru, t_ua FROM transl_db");

// 3. 初始化存储所有翻译的数组
$transArr = [];

// 4. 循环处理每一行查询结果
while ($row = mysqli_fetch_assoc($queryResult)) {
    // 核心逻辑:用t_name作为数组键,对应值是[英文, 俄文, 乌克兰文]的数组
    $transArr[$row['t_name']] = [
        $row['t_en'],  // 索引0:英文
        $row['t_ru'],  // 索引1:俄文
        $row['t_ua']   // 索引2:乌克兰文(你之前写的[3]应该是笔误,数组索引从0开始)
    ];
}

// 示例用法:获取某个名称的对应语言翻译
// echo $transArr['login_btn'][0]; // 输出login_btn的英文翻译
// echo $transArr['login_btn'][1]; // 输出login_btn的俄文翻译
// echo $transArr['login_btn'][2]; // 输出login_btn的乌克兰文翻译

// 5. 记得关闭数据库连接
mysqli_close($dbConn);

代码说明

  • 用mysqli_fetch_assoc获取关联数组,能直接通过字段名取到对应的值,可读性更强;
  • 最终生成的$transArr完全符合你的需求:每个t_name对应一个包含三种语言的子数组,通过索引[0]/[1]/[2]就能快速获取对应语言的翻译;
  • 替换成mysqli函数后,代码能兼容PHP 7+的所有版本,安全性也更高。

内容的提问来源于stack exchange,提问作者Janan Pouransari

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:23:18