项目调用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
相关产品推荐
相关产品推荐

