首页 > 解决方案 > PHP pdo查询有时插入两次

问题描述

我有一个通过 php 提交数据的 android 应用程序,但有时在我提交数据时数据会插入两次。我确定问题不在应用程序上,因为一旦我按下按钮,按钮就会被禁用。请帮我找出我的错误。谢谢!以下是插入的数据: 在此处输入图像描述

以下是我的查询:

if ($_SERVER['REQUEST_METHOD'] == 'POST'){
    $area = $_POST['area'];
    $date = $_POST['date'];
    $batch = $_POST['batch'];
    $workerName = $_POST['workerName'];
    $remarks = $_POST['remarks'];
    $time = $_POST['time'];
    $tank = $_POST['tank'];
    $sid= '';
    $submissionDateTime = $_POST['submissionDateTime'];
    
    
    require_once 'connectdb.php';
    
    $stmt = $conn ->prepare("SELECT DISTINCT sid FROM feedingforms WHERE area = :area AND tank = :tank AND date = :date AND batch = :batch AND time = :time");
    $stmt->bindParam(":area", $_POST['area']);
    $stmt->bindParam(":tank", $_POST['tank']);
    $stmt->bindParam(":date", $_POST['date']);
    $stmt->bindParam(":batch", $_POST['batch']);
    $stmt->bindParam(":time", $_POST['time']);
    $stmt->execute();
    $stmt->fetch();//fecth
    switch ($stmt->rowCount() > 0){
        case "0":
        $stmt2 = $conn->prepare("INSERT INTO feedingforms(sid, area, date, batch, workerName, submissionDateTime, remarks, time, tank) VALUES(:sid, :area, :date,:batch,:workerName,:submissionDateTime, :remarks, :time,:tank)");
        $stmt2->bindValue(":sid", $sid);
        $stmt2->bindValue(":area", $area);
        $stmt2->bindValue(":date", $date);
        $stmt2->bindValue(":batch", $batch);
        $stmt2->bindValue(":workerName", $workerName);
        $stmt2->bindValue(":submissionDateTime", $submissionDateTime);
        $stmt2->bindValue(":remarks", $remarks);
        $stmt2->bindValue(":time", $time);
        $stmt2->bindValue(":tank", $tank);
    
        if ($stmt2->execute()) {
            $result["success"]= "1";
            $result["message"] = "success";
            echo json_encode($result);
            $conn = null;
            exit;
            break;
    
        }else{
            $result["success"]= "0";
            $result["message"] = "error";
            echo json_encode($result);
            $conn = null;
            exit;
            break;
        }
        default:
        $result["success"]= "2";
        $result["message"] = "duplicate";
        echo json_encode($result);
        exit;
        $conn = null;
    
}
    }
?>

标签: phpdatabasepdoduplicates

解决方案


推荐阅读