PDO INSERT как отправить в бд
Отправляю axios.post из vue в php данные. В php прилетают, но не отправляются в бд. Но если заранее указать $data, то данные затираются и бд улетает не нужное. Т.е.
header('Access-Control-Allow-Origin: *');
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$data = json_decode(file_get_contents("php://input"), true);
// всегда считает пустым
$data = array(
":id" => $data['id'],
":name" => $data['name'],
":phone" => $data['phone'],
":body" => $data['body']
);
/*
$data = array(
":id" => 123,
":name" => 'name',
":phone" => 'phone',
":body" => 'body'
);*/
$host = 'localhost';
$db = 'posts';
$user = 'root';
$pass = '';
$charset = 'utf8';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
$pdo = new PDO($dsn, $user, $pass, $opt);
$stmt = $pdo->prepare("INSERT INTO post (id, name, phone, body) VALUES (:id,:name,:phone,:body)");
$stmt->execute($data);
}