<?php
try {
    $dbh = new PDO('mysql:host=localhost;dbname=test', 'root', '');

    $media = (object) array(
        'title' => 'Lorem ipsum dolor sit amet',
        'url' => 'file.jpg',
        'type' => 'image/jpeg',
        'extension' => 'jpeg',
        'date' => date('Y-m-d H:i:s'),
        'enabled' => 1
    );

    $stmt = $dbh->prepare("INSERT INTO media_table (title, url, type, extension, date, enabled) VALUES(?,?,?,?,?,?)");

    try {
        $dbh->beginTransaction();
        $stmt->execute(array_values((array) $media));
        $dbh->commit();

        $stmt = $dbh->prepare("INSERT INTO image_table (media_id, title) VALUES(?,?)");

        try {
            $stmt->execute(array($dbh->lastInsertId(), $media->title));

            exit('Successfully added');
        } catch(PDOException $e) {
            $dbh->rollback();
            exit($e->getMessage());
        }
    } catch(PDOException $e) {
        $dbh->rollback();
        exit($e->getMessage());
    }
} catch(PDOException $e) {
    exit($e->getMessage());
}
?>
PDOException fix