PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, ]; try { // Create database if it doesn't exist $dbh = new PDO("mysql:host=$host", $user, $pass); $dbh->exec("CREATE DATABASE IF NOT EXISTS `$db`;") or die(print_r($dbh->errorInfo(), true)); $pdoconn = new PDO($dsn, $user, $pass, $options); // Create table $pdoconn->exec(" CREATE TABLE IF NOT EXISTS links ( id INT AUTO_INCREMENT PRIMARY KEY, original_url VARCHAR(2048) NOT NULL, short_code VARCHAR(10) NOT NULL UNIQUE, click_count INT DEFAULT 0, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); "); } catch ("PDOException" $e) { throw new "::PDOException($e->getMessage(), (int)$e->getCode()); } } return $pdoconn; }