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

项目调用WebAPI向MySQL插入数据时自动新增空行,求解决方法

解决MySQL插入数据时出现前置空行的问题

嘿,我来帮你看看这个插入空行的问题!你遇到的情况是往class表的nom_class字段插入数据时,目标行前多了个空行对吧?咱们一步步来排查和解决:

可能的原因&对应解决办法

  • 输入数据自带换行符:前端传过来的nom值可能开头带了换行(比如用户输入时误敲了回车,或者前端传参时没处理好)。先给输入做个清理,去掉首尾的空白字符(包括换行、空格、制表符这些):
    $nom = trim($_POST['nom']);
    
  • 修复代码里的SQL注入风险(顺带解决潜在格式问题):你现在直接把用户输入拼进SQL语句,这可是个大安全隐患!换成预处理语句不仅能防注入,还能避免特殊字符导致的各种格式问题,修改后的代码如下:
    $rest_json = file_get_contents("php://input");
    $_POST = json_decode($rest_json, true);
    $nom = trim($_POST['nom']); // 先清理输入的空白字符
    
    // 用预处理语句执行插入
    $stmt = $db->prepare("INSERT INTO class (nom_class) VALUES (?)");
    $stmt->bind_param("s", $nom); // "s"表示这个参数是字符串类型
    if ($stmt->execute()) {
        $res = "Inserted " . $nom;
        echo json_encode($res);
    } else {
        echo json_encode("Error: " . $stmt->error);
    }
    $stmt->close();
    
  • 确认原始输入内容:要是清理后还是有问题,你可以先把接收的$nom值打出来看看,确认是不是真的带了换行:
    var_dump($nom); // 临时打印或者写到日志里,看看原始数据是什么样的
    

额外提醒

如果清理后端输入后还是有空行,那大概率是前端传递的数据本身就有问题,得在前端也做下输入验证和清理,比如限制用户输入格式,或者在发送请求前就把首尾的空白去掉。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:55:47