Ti darò un esempio di come viene effettuata la connessione di base al database e l'inserto è completato, questo è solo a scopo illustrativo. Dovresti riorganizzare questo codice all'interno di una classe in modo che ogni istruzione insert non crei un oggetto PDO ma riutilizzi l'oggetto creato in precedenza.
function insertItem($desc, $cat, $link) {
$dbh = new PDO("mysql:host=host;dbname=db", $user, $pass);
$sql = "INSERT INTO table (description, category, link) VALUES (:desc, :cat, :link)";
$sth = $dbh->prepare($sql);
$sth->bindValue(":desc", $desc);
$sth->bindValue(":cat", $cat);
$sth->bindValue(":link", $link);
$sth->execute();
}