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

过程式PHP中MySQL查询无法返回单个字段问题求解

问题根因

mysqli_query执行SELECT查询后返回的是mysqli_result结果集对象,并非你要的字段直接取值。你直接将该对象压入数组做JSON序列化,前端解析后自然会显示为[object Object]。

修复方案

你需要先从结果集对象中提取出实际的行数据,再取对应的signature字段值即可,修正后代码如下:

if ($signatureDAT) {
    mysqli_query($dragonden, "INSERT INTO Signatures(signature) VALUES('$signatureDAT')");
    $sigID = mysqli_insert_id($dragonden);
    
    
    // RETRIEVE DATA FROM DB, TO VERIFY IT WAS SAVED PROPERLY
    $result = mysqli_query($dragonden, "SELECT signature FROM Signatures WHERE id = '$sigID'");
    // 从结果集中提取单条关联数组数据
    $sigRow = mysqli_fetch_assoc($result);
    $sigDAT = $sigRow['signature'];
    
    
    // SEND RESULTS BACK TO AJAX
    $data = array();
    array_push($data, $signatureDAT, $sigDAT);
    print json_encode($data);
}

额外优化建议

  • 原代码直接拼接SQL参数存在SQL注入风险,后续建议改用mysqli预处理语句传参,规避注入问题
  • 可以增加查询结果校验逻辑,比如判断$result是否为false、$sigRow是否存在,避免查询失败或无匹配数据时出现PHP报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 13:24:03