А раскоментируйте строку //print_r($q->errorInfo()); (уберите // перед кодом), посмотрим что за ошибку нам выдает.
Код: Выделить всё
$q = $db->prepare($sql);
вот так:
Код: Выделить всё
try {
$q = $db->prepare($sql);
} catch (PDOException $e) {
echo "Error.<br>".$e->getMessage();
}