Вставить автоматически увеличивающийся идентификатор с помощью подготовленных операторов

При вставке новой записи в таблицу с индексом автоинкрементного идентификатора обычно достаточно указать поле идентификатора NULL или опустить его из запроса INSERT, как описано в разделе Как вставить новый идентификатор автоматического увеличения

INSERT INTO `database`.`table` (`id`, `user`, `result`) VALUES (NULL, 'Alice', 'green')"); 

или

 INSERT INTO `database`.`table` (`user`, `result`) VALUES ('Alice', 'green')"); 

Мой вопрос: как вы делаете то же самое при использовании подготовленных операторов. Я попробовал следующее, используя NULL:

 $stmt = $db->prepare("INSERT INTO `db` (id, name, password, text) VALUES (NULL, ?, ?, ?)"); $stmt->bind_param('sss', $name, $password, $text); $stmt->execute(); 

и fowllowing, опустив поле ID:

 $stmt = $db->prepare("INSERT INTO `test_db` (name, password, text) VALUES (?, ?, ?)"); $stmt->bind_param('sss', $name, $password, $text); $stmt->execute(); 

Когда я запускаю это, я ничего не добавляю и в браузере не появляется сообщение об ошибке. Я думаю, это связано с тем, что он пытается вставить дублирующее значение для поля ID (stackoverflow.com/questions/12179770/…), но почему он должен делать это, когда это кажется эквивалентным способу ввода данных без подготовки , а затем не сообщайте, я не уверен.

Любые идеи приветствуются!