Редактировать: как один из комментаторов указал выше; не рекомендуется не иметь первичного ключа в вашей базе данных MySQL
Ваш SQL-запрос неверен. Вы должны иметь столбцы и значения отдельно.
$ sql = "INSERT INTO checklist ((SELECT MAX (checklist_id) +1), checklist_name) VALUES (NULL,: checklist_name)";
Чтобы сделать правильное утверждение INSERT, посмотрите документацию
INSERT INTO table (column, column, etc.) VALUES (value, value, etc.)
Таким образом, чтобы сделать ваше утверждение правильным, вам придется переключить некоторые переменные
INSERT INTO checklist (checklist_id, checklist_name) VALUES ((SELECT MAX(checklist_id)+1 FROM checklist), :checklist_name)
И ваш массив с вашими значениями привязки будет выглядеть так
array(':checklist_name' => $_POST['checklist_name'])
Если у вас есть проблемы с любым синтаксисом SQL, вы можете посмотреть документацию или w3schools .