php – status 200 pero no me muestra info de la base de datos

este crud lo copie

<?php
    include_once 'conexion.php';
    $obj = new Conexion();
    $conexion = $obj->Conectar();

    //necesario para recibir parametros de Axios
    $_POST = json_decode(file_get_contents("php://input"),true);

    //recepcion de los datos que envĂ­a post
    $opcion = (isset( $_POST('opcion'))) ? $_POST('opcion') : '' ;

    $id = (isset ( $_POST('id'))) ? $_POST('id') : '' ;

    $marca = (isset ( $_POST('marca'))) ? $_POST('marca') : '';

    $modelo = (isset ( $_POST('modelo'))) ? $_POST('modelo') : '';

    $stock = (isset ( $_POST('stock'))) ? $_POST('stock') : '';


    switch ($opcion) {
        case 1: //create
            $query = "INSERT INTO moviles (marca, modelo, stock) VALUES ('$marca', '$modelo', '$stock') ";
            $resultado = $conexion->prepare($query);
            $resultado->execute();
            break;
        case 2: //update
            $query = "UPDATE moviles SET marca='$marca', modelo='$modelo', stock='$stock' WHERE id='$id' ";
            $resultado = $conexion->prepare($query);
            $resultado->execute();
            $data=$resultado->fetchAll(PDO::FETCH_ASSOC);
            break;
        case 3: //delete
            $query = "DELETE FROM moviles WHERE id='$id' ";
            $resultado = $conexion->prepare($query);
            $resultado->execute();
            break;
        case 4: //read
            $query = "SELECT * FROM moviles";//"SELECT id, marca, modelo, stock FROM moviles";
            $resultado = $conexion->prepare($query);
            $resultado->execute();
            $data=$resultado->fetchAll(PDO::FETCH_ASSOC);
            break;
    }

print json_encode($data,UNESCAPED_UNICODE);
$conexion = NULL;


?>

conexion a la base de datos (tambn la copie :V)

    <?php
    class Conexion{
        public static function Conectar(){
            define('servidor','localhost');
            define('nombre_db','crud');
            define('user','userX');
            define('password','userequis');

            $opcion = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
            try{

                $conexion = new PDO("mysql:host=".servidor.";dbname=".nombre_db, user, password, $opcion);
                return $conexion;

            }catch(Exception $e){
                die("El error de conexion es: ".$e->getMessage());
            }
        }
    }


?>

el codido de vue es este

let url = "crud.php";

let vm = new Vue ({

    el:'#app',

    data:{

        msg:()
    },
    methods:{

        leerDatos: function(){
            axios

                //.post(url,{opcion:1,marca:'vtelca',modelo:'telepatria', stock:10})
                //.post(url,{opcion:2, marca:'oppo', modelo:'niputaidea', stock: 40, id:20201})
                //.post(url,{.opcion:3,id: })
                .post(url, {opcion:4})
                .then(res => console.log(res))
        }
    },
    created (){
        this.leerDatos();
    }




})
  • me manda status 200 todo OK pero no me muestra el contenido de la base de datos, pero el todo lo demas del crud funciona*

  • me ejecuta todas las demas opciones menos la 4
    ya hice pruebas pero no se que pueda ser! Ayuda!! derramen sabiduria brous xD

  • me manda en el res.data de el archivo .js un string vacio pero la base de datos esta con contenido , el usuario esta bien tiene todos los permisos,la base de datos es encendida todo esta como deberia no manda ningun error solo que no me realisa el select * from moviles; es un crud de telefonos moviles :V pero hasta ahora esta lo basico,tenia muchos errores que ya solucione, pero en este caso no manda error a nada pero no funciona como deberia :V help me please T.T