Я часто использую CodeIgniter 4 для обучения, личных проектов и разработки приложений. В этом посте я расскажу о 2 различных методах, которые вы можете использовать и получить значение MySQL Last Insert ID после выполнения инструкции INSERT в CodeIgniter. Продолжайте читать, чтобы узнать больше…

Самореклама:

Если вам нравится содержание, написанное здесь, обязательно поделитесь этим блогом и своими любимыми сообщениями с другими людьми, которым он также может быть полезен или им понравится. Поскольку кофе - мой любимый напиток, вы можете даже купить мне его, если хотите!

Настройка модели

Вначале я использую функцию Генератор CLI и создаю Модель, выполняя этот код в терминале в корне проекта:

php spark make:model user --suffix

Я удалил большую часть шаблонного кода, сохранив эту простую модель пользователя. Я добавлю больше функций по мере необходимости:

Создание метода Home Controller users ()

При посещении URL-адреса / cicrud / home / users выполняется этот метод users () в файле Home контроллера по умолчанию:

Важный! Предположим, что ассоциативный массив $ data был проверен и обработан перед передачей в метод insert () модели. Всегда проверяйте и дезинфицируйте свои данные!

Вы средний участник? Если это так, получайте уведомление по электронной почте каждый раз, когда я публикую сообщение в блоге, если вы предпочитаете платформу Medium. Не участник? Не стоит беспокоиться! Воспользуйтесь моей регистрационной ссылкой (я получу комиссию без дополнительных затрат для вас) и присоединяйтесь. Мне очень нравится читать там все замечательные материалы, и я знаю, что вы тоже будете !!!

Проверяя данные в таблице пользователя, мы видим, что строка была добавлена:

Иногда, как разработчику, вам нужно захватить значение идентификатора последней вставки из столбца таблицы MySQL, определенного с помощью атрибута AUTO_INCREMENT. MySQL имеет родную информационную функцию LAST_INSERT_ID (), которую вы можете использовать в запросах и получать это значение.

Если вы используете CodeIgniter 4, вы можете использовать несколько различных методов, в зависимости от того, как вы вставляете данные, что позволяет получить значение идентификатора последней вставки. Я расскажу о них обоих в этом посте.

CodeIgniter 4 Модель getInsertID () метод

Модели CodeIgniter 4 имеют встроенные методы для обработки большинства операций CRUD, необходимых в приложении.

Я писал о методе insert () модели CodeIgniter 4 в этой средней публикации, CodeIgniter 4 CRUD Series с MySQL: Create.

Если вы вставили новую строку с помощью метода Model insert () и вам нужно значение Last Insert ID, как вы можете его получить?

Вы можете вызвать метод Model getInsertID () в вашем текущем экземпляре Model и получить значение.

На момент написания я не нашел официальной документации по этому методу. Для целей этого сообщения в блоге я использую этот пост, который я нашел на Stackoverflow. Не стесняйтесь предоставлять соответствующие ресурсы или ссылки в комментариях ниже для этого метода CodeIgniter 4.

См. Обновленный метод users () ниже и код:

Еще раз просмотрев таблицу пользователя, вы также увидите значение:

Я пишу еженедельное электронное письмо о SQL / PHP, которое я изучаю, изучаю и интересуюсь. Если это похоже на то, частью чего вы хотели бы стать, узнайте больше об этом здесь. Спасибо!

CodeIgniter 4 Конструктор запросов insertID ()

В файле модели UserModel я создал этот метод dataInsert ():

Используя Класс построителя запросов, мы можем INSERT получить значение идентификатора последней вставки, используя встроенный метод $ builder insertID (), который вызывается в Экземпляр подключения $ db.

В Home Controller я отредактировал метод users (), чтобы использовать метод UserModel dataInsert (), показанный в этом фрагменте кода.

Опять же, при посещении URL-адреса / cicrud / home / users выполняется метод users () Home Controller. Однако в этом случае метод insertID () построителя запросов извлекает значение идентификатора последней вставки вместо метода getInsertID () модели.

Вот и все. Два способа получить значение идентификатора последней вставки в CodeIgniter 4. Если вы знаете какие-либо другие, поделитесь ими в комментариях ниже, чтобы я и другие читатели тоже знали о них. Спасибо!

Похожие сообщения в блоге с идентификатором последней вставки

Я написал несколько сообщений в блоге о MySQL Last Insert ID, охватывающих несколько различных сред / языков, и хочу поделиться ими ниже со всеми заинтересованными читателями. Пожалуйста, поделитесь и ими! Спасибо!

Если у вас есть вопросы или вы видите ошибки в коде, дайте мне знать в комментариях. Конструктивные комментарии помогают мне составлять точные сообщения в блоге и очень ценятся. Спасибо за чтение!

Нравится то, что вы прочитали? Видите что-нибудь неправильное? Прокомментируйте, пожалуйста, ниже и спасибо за чтение !!!

Призыв к действию!

Спасибо, что нашли время прочитать этот пост. Я искренне надеюсь, что вы открыли для себя что-то интересное и поучительное. Пожалуйста, поделитесь своими выводами здесь с кем-нибудь, кого вы знаете, кто тоже получит от этого такую ​​же ценность.

Посетите страницу Портфолио-проекты, чтобы увидеть сообщения в блоге / технические статьи, которые я написал для клиентов.

Если вам нравится мой контент, выразите свою признательность за чашечкой кофе.

Чтобы получать уведомления по электронной почте (Никогда не спамить) от этого блога (Проза цифровой совы) о последних публикациях в блоге по мере их публикации, пожалуйста, подпишитесь (по собственному желанию), нажав кнопку Нажмите, чтобы подписаться! На боковой панели на домашняя страница! (Не стесняйтесь в любое время просмотреть страницу политики конфиденциальности Digital Owl's Prose по любым вопросам, которые могут у вас возникнуть: обновления по электронной почте, подписка, отказ, контактные формы и т. Д.)

Обязательно посетите страницу Best Of, где собраны мои лучшие сообщения в блоге.

Джош Отвелл хочет учиться и расти как разработчик SQL и блогер. Другие любимые занятия находят его, уткнувшись носом в хорошую книгу, статью или командную строку Linux. Среди них он разделяет любовь к настольным ролевым играм, чтению фэнтезийных романов и проведению времени с женой и двумя дочерьми.

Отказ от ответственности: примеры, представленные в этом посте, представляют собой гипотетические идеи о том, как достичь аналогичных результатов. Это не самое лучшее решение. Большинство, если не все, из представленных примеров выполняются в среде рабочей станции для личного развития / обучения и не должны считаться производственными или готовыми к использованию. Ваши конкретные цели и потребности могут отличаться. Используйте те методы, которые лучше всего подходят для ваших нужд и целей. Мнения мои собственные.

Первоначально опубликовано на https://joshuaotwell.com 20 октября 2021 г.