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

通过WebHook从Python向MySQL插入数据时SQL语法错误求助

解决MySQL插入语句的语法错误问题

嘿,我帮你找到了问题的根源!你遇到的SQL语法错误,核心原因是**timestamp是MySQL的保留关键字**,直接在字段列表里使用会让数据库解析器混乱,进而触发语法报错。另外虽然int1不是保留字,但为了避免类似问题,建议所有字段名都用反引号包裹起来。

修正后的SQL语句

把字段名用反引号(`)包裹,就能解决语法问题:

INSERT INTO records ( `timestamp`, `tensor`, `float1`, `int1` ) VALUES ( '1521860398', '1', '2', '3' )

更安全的PHP实现建议

另外注意,你当前的代码(虽然只贴了开头)看起来是直接拼接参数到SQL里,这会有SQL注入的风险。强烈推荐使用PHP的预处理语句来执行数据库操作,既安全又能避免很多类型匹配的问题,示例代码如下:

<?php
if($_GET["token"]=="oSImm4M9ke52QhovmmqeFgpDS0..."){
    // 假设你已经通过mysqli或PDO建立了数据库连接$conn
    // 这里用mysqli为例
    $stmt = $conn->prepare("INSERT INTO records (`timestamp`, `tensor`, `float1`, `int1`) VALUES (?, ?, ?, ?)");
    // 绑定参数:s=字符串,i=整数,根据你的字段实际类型调整
    $stmt->bind_param("sssi", $timestamp, $tensor, $float1, $int1);
    
    // 给参数赋值
    $timestamp = '1521860398';
    $tensor = '1';
    $float1 = '2';
    $int1 = 3; // 如果int1是INT类型,这里直接用整数即可
    
    // 执行插入操作
    if($stmt->execute()){
        echo "数据插入成功";
    } else {
        echo "插入失败: " . $stmt->error;
    }
    
    // 关闭语句和连接
    $stmt->close();
    $conn->close();
}
?>

额外检查点

  • 确认你的records表确实存在timestamp、tensor、float1、int1这四个字段
  • 确保插入的值和字段的类型匹配(比如int1如果是INT类型,插入时不需要加单引号,预处理语句会自动处理类型转换)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:28:36