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

如何将PHP数组值插入MySQL数据库行?现有插入代码报错如何解决

解决方法

核心报错原因

你当前代码报错的根本原因是SQL拼接时直接传入了整个$option_mark数组,PHP中数组无法直接转换为字符串拼接进SQL语句,会触发Array to string conversion类型错误,自然无法正常执行入库逻辑。
你的$option_mark数组下标(1~4)和foreach遍历得到的$option变量(对应选项序号)是一一对应的,直接按下标取对应分值即可。

修复后的代码

if($result){
    foreach($choice as $option => $value){
        if($value != ""){
            $is_correct = ($correct_choice == $option) ? 1 : 0;
            // 取对应选项的分值,不存在默认给0避免报错
            $mark = isset($option_mark[$option]) ? $option_mark[$option] : 0;

            //Second Query for Choices Table
            $query = "INSERT INTO options (";
            $query .= "question_number,choice,correct,mark)";
            $query .= " VALUES (";
            $query .=  "'{$question_number}','{$value}','{$is_correct}','{$mark}'";
            $query .= ")";
            // 后续执行query的原有逻辑保留即可
        }
    }
}

额外安全优化建议

当前直接拼接SQL语句存在SQL注入风险,建议替换为PDO或mysqli的预处理语句来操作数据库,避免恶意输入攻击。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 07:09:02