使用菜鸟教程的SQLite-PHP插入浏览器传来的数据出现问题
- 问题:获取到前端传送过来的数据为下面代码所示
$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换成具体的数据,插入成功,可以推断出是
lineSpeed换成具体的数据,插入成功,可以推断出是lineSpeed出了问题,但是该数据$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"即可。