PHP接收前端数据,解决SQLite3::exec(): near “,“:问题

本文解决了使用PHP向SQLite数据库插入JSON数据时遇到的问题。通过调整SQL语句中变量的引用方式,成功实现了数据的正确插入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用菜鸟教程的SQLite-PHP插入浏览器传来的数据出现问题

  1. 问题:获取到前端传送过来的数据为下面代码所示
   $jsonStr = file_get_contents("php://input");
   $arr = json_decode($jsonStr);

   $date = $arr->LINE_DATE;//折线图保存的时间
	
   $lineSpeed = $arr->LINE_SPEED;//折线图速度

   $lineTime = $arr->LINE_TIME;//折线图总时间

   $lineLoc = $arr->LINE_LOC;//折线图位置

   $machineId = $arr->MACHINE_ID;//折线图归属的id

将这些数据插入到数据库中:

$sql =<<<EOF
		 INSERT INTO lineDesc (ID,LINE_SPEED,LINE_LOC,MACHINE_ID,LINE_TIME,LINE_DATE)
      VALUES (8,$lineSpeed, $lineLoc , $machineId, $lineTime, $date);
EOF;

	  $ret = $db->exec($sql);

插入不成功,出现标题所说的问题。
2. 原因:经过我将 l i n e S p e e d 换 成 具 体 的 数 据 , 插 入 成 功 , 可 以 推 断 出 是 lineSpeed换成具体的数据,插入成功,可以推断出是 lineSpeedlineSpeed出了问题,但是该数据$lineSpeed可以打印到前端中,所以判断是SQL语句出了问题。
3. 解决方法:
通过网上查找方法,发现是在SQL语句中,插入值为引用时,应该修改为

INSERT INTO lineDesc (ID,LINE_SPEED,LINE_LOC,MACHINE_ID,LINE_TIME,LINE_DATE)
      VALUES (8,"$lineSpeed" , ".$lineLoc" , "$machineId", "$lineTime", "$date");

把变量变为"$lineTime"即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值