MySQLI更新声明不起作用

时间:2018-03-13 18:43:06

标签: php mysqli

<?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的权限,我拥有所有权限。请帮助,我是一名高中生,这是我今年年底的项目。干杯:)

1 个答案:

答案 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;