1

コードの主な機能は終了しましたが、削除しようとしている「役に立たない」コードがたくさんあります。
これは例です:

else if(isset($_POST['act']) && $_SESSION['status']<3 && $_POST['act']=='delete_ticket'){
    $encid=preg_replace('/\s+/','',$_POST['enc']);
    $encid=($encid!='' && strlen($encid)==87) ? $encid:exit();
    $mysqli = new mysqli($Hostname, $Username, $Password, $DatabaseName);
    $stmt = $mysqli->stmt_init();
    if($stmt){
        $query = "UPDATE ".$SupportTicketsTable." a
                    INNER JOIN ".$SupportUserTable." b
                        ON b.id=a.operator_id
                    SET b.assigned_tickets= CASE  WHEN b.assigned_tickets!='0' THEN (b.assigned_tickets-1) ELSE b.assigned_tickets END  
                WHERE a.enc_id=?";
        if($prepared = $stmt->prepare($query)){
            if($stmt->bind_param('s', $encid)){
                if($stmt->execute()){
                    $query = "DELETE FROM ".$SupportMessagesTable." WHERE `ticket_id`=(SELECT `id` FROM ".$SupportTicketsTable." WHERE `enc_id`=?) ";
                    if($prepared = $stmt->prepare($query)){
                        if($stmt->bind_param('s', $encid)){
                            if($stmt->execute()){
                                $query = "SELECT enc FROM ".$SupportUploadTable." WHERE `ticket_id`=?";
                                if($prepared = $stmt->prepare($query)){
                                    if($stmt->bind_param('s', $encid)){
                                        if($stmt->execute()){
                                            $stmt->store_result();
                                            $result = $stmt->bind_result($mustang);
                                            if($stmt->num_rows>0){
                                                $path='../upload/';
                                                while (mysqli_stmt_fetch($stmt)) {
                                                    if(file_exists($path.$mustang)){
                                                        file_put_contents($path.$mustang,'');
                                                        unlink($path.$mustang);
                                                    }
                                                }
                                            }
                                            $query = "DELETE FROM ".$SupportUploadTable." WHERE `ticket_id`=?";
                                            if($prepared = $stmt->prepare($query)){
                                                if($stmt->bind_param('s', $encid)){
                                                    if($stmt->execute()){
                                                        $query = "DELETE FROM ".$SupportFlagTable." WHERE `enc_id`=?";
                                                        if($prepared = $stmt->prepare($query)){
                                                            if($stmt->bind_param('s', $encid)){
                                                                if($stmt->execute()){
                                                                    $query = "DELETE FROM ".$SupportTicketsTable." WHERE `enc_id`=?";
                                                                    if($prepared = $stmt->prepare($query)){
                                                                        if($stmt->bind_param('s', $encid)){
                                                                            if($stmt->execute()){
                                                                                echo json_encode(array(0=>'Deleted'));
                                                                            }
                                                                            else
                                                                                echo json_encode(array(0=>mysqli_stmt_error($stmt)));
                                                                        }
                                                                        else
                                                                            echo json_encode(array(0=>mysqli_stmt_error($stmt)));
                                                                    }
                                                                    else
                                                                        echo json_encode(array(0=>mysqli_stmt_error($stmt)));
                                                                }
                                                                else
                                                                    echo json_encode(array(0=>mysqli_stmt_error($stmt)));
                                                            }
                                                            else
                                                                echo json_encode(array(0=>mysqli_stmt_error($stmt)));
                                                        }
                                                        else
                                                            echo json_encode(array(0=>mysqli_stmt_error($stmt)));
                                                    }
                                                    else
                                                        echo json_encode(array(0=>mysqli_stmt_error($stmt)));
                                                }
                                                else
                                                    echo json_encode(array(0=>mysqli_stmt_error($stmt)));
                                            }
                                            else
                                                echo json_encode(array(0=>mysqli_stmt_error($stmt)));
                                        }
                                        else
                                            echo json_encode(array(0=>mysqli_stmt_error($stmt)));
                                    }
                                    else
                                        echo json_encode(array(0=>mysqli_stmt_error($stmt)));
                                }
                                else
                                    echo json_encode(array(0=>mysqli_stmt_error($stmt)));
                            }
                            else
                                echo json_encode(array(0=>mysqli_stmt_error($stmt)));
                        }
                        else
                            echo json_encode(array(0=>mysqli_stmt_error($stmt)));
                    }
                    else
                        echo json_encode(array(0=>mysqli_stmt_error($stmt)));
                    }
            else
                echo json_encode(array(0=>mysqli_stmt_error($stmt)));
            }
        else
            echo json_encode(array(0=>mysqli_stmt_error($stmt)));
    }
    else
            echo json_encode(array(0=>mysqli_stmt_error($stmt)));
}
else
    echo json_encode(array(0=>mysqli_stmt_error($stmt)));
exit();
}

ご覧のとおり、mysqli 接続のステートメントが多すぎifます。これは削除したい部分です。削除する方法はありますか? tryと の間にラップしようとしましcatchたが、コードはとにかく成功を返しますecho(これは AJAX 呼び出しです)。
mysqli の try および catch 関数に問題があることを読んだので、PDO を調べましたが、私は専門家ではなく、投稿したコードと同じ結果が得られるかどうかわかりませんそれで、エラーモードを に変更する必要があることも読みましたがPDO::ERRMODE_EXCEPTION、その点がよくわかりませんでした。
基本的に: PDO がエラーを処理する方法を説明できる人はいますか?

4

1 に答える 1