<?php
header('Content-Type: application/json');
include '../../connection.php';
$id_e = $_POST['id'];
$location_e = $_POST['location'];
$state_e = $_POST['state'];
$notes_e = $_POST['notes'];
$sql="UPDATE chassis SET location='%$location_e%', state='%$state_e%', notes='%$notes_e%' WHERE id='%$id_e%'";
$query = mysqli_query($db,$sql);
if (!$query) {
echo json_encode(["message"=>mysqli_error($db)]);
}else {
echo json_encode(["message"=>"Success"]);
}
/* I used this code below to check if the data sent by ajax is received
switch($state_e){
case "New":
echo json_encode(["message"=>"hi"]);
break;
default:
echo json_encode(["message"=>"nope"]);
break;
}
}*/
?>
嗨,我不确定我的代码有什么问题,但是UPDATE语句没有更新我的数据库。我有一个ajax jquery发布数据,这个数据由这个PHP文件接收。我知道PHP文件正在接收数据,因为我尝试了一段代码来检查它。此外,查询返回成功。我认为问题在于UPDATE语句,但是我尝试了UPDATE语句的不同变体,如:
$sql="UPDATE chassis SET location='".$_POST['location']."', state='".$_POST['state']."', notes='".$_POST['notes']."' WHERE id='".$_POST['id']."";
它仍然不起作用。我还检查了SQL的权限,我拥有所有权限。请帮助,我是一名高中生,这是我今年年底的项目。干杯:)
答案 0 :(得分:0)
你应该使用准备好的陈述。另外,根据我的评论,我没有看到在变量旁边添加%
的原因。此外,您应该收到真正的错误,而不仅仅是输出Error
$sql="UPDATE chassis SET location=?, state=?, notes=? WHERE id=?";
$result = $db->prepare($sql);
$result->bind_param('sssi', $location_e, $state_e, $notes_e, $id_e);
echo $result->execute() === true ? 'Success' : 'Failed: '.$result->error;