PHP switch case + PDO Update DB

时间:2016-08-31 20:20:16

标签: php mysql angularjs pdo

我在ng-click上使用AngularJS将数据发送到php文件。我有2个按钮,我试图将它发送到相同的php文件,使用switch case插入数据库,但它没有更新数据库。

如何修复我的PHP?

insert.php

<?php 

  include_once('conn.php');

  $data = json_decode(file_get_contents("php://input"));

  switch($data){

  case 'getvou':    
    $vou = $data->getvou;
    $sql = $mysqli->query("UPDATE audiencia SET vou = '".$vou."'");
    $mysqli->close();
    break;

  case 'getnaovou':
    $naovou = $data->getnaovou;
    $sql = $mysqli->query("UPDATE audiencia SET nao_vou = '".$naovou."'");
    $mysqli->close();
    break;
  }

?>

的script.js

$scope.add_vou = function(){ 

    $scope.vou += 1;

    $http.post("http://localhost/insert-audiencia.php", {'getvou': $scope.vou}).then(function(resp){
        console.log(JSON.stringify(resp));
        console.log(resp); 
    });
}

$scope.add_nao_vou = function(){ 

    $scope.nao_vou += 1;

    $http.post("http://localhost/insert-audiencia.php", {'getnaovou': $scope.nao_vou}).then(function(resp){
        console.log(JSON.stringify(resp));
        console.log(resp); 
    });
}

1 个答案:

答案 0 :(得分:1)

$data将是一个JSON对象,它不会与这些字符串中的任何一个相等,因此case中不会匹配switch

根据您当前发送数据的方式,您需要检查JSON对象是否具有属性。

if (property_exists($data, 'getvou')) {
    // one query
} elseif (property_exists($data, 'getnaovou')) {
    // other query
}

isset($data->getvou)等也适用于此。