Синтаксис mysql кажется правильным, но вы пытались запросить его вместо создания подготовленного оператора?
(Также, пожалуйста, уточните, разместив сообщения об ошибках, больше кода, контекст проблемы и т. Д.)
Из того, что я вижу, вы не выполняете утверждение.
$create = $bdd->prepare('ALTER TABLE reservation ADD test INT NULL');
$create->execute();
Если вы не собираетесь вставлять созданные пользователем данные, вместо этого вы можете попробовать выполнить запрос к базе данных:
$create = $bdd->query('ALTER TABLE reservation ADD test INT NULL');
Не уверен, нужен ли этот третий, но я обычно добавляю "COLUMN" к запросу. Это может зависеть от того, какой движок БД вы используете (не цитируйте меня по этому поводу)
ALTER TABLE reservation ADD COLUMN test INT NULL
Удачи!