As a PHP developer, you may have encountered such a problem: how to get the ID of a newly inserted record in a table that uses an auto-increment ID. In ThinkPHP, you can directly call the $model->getLastInsID()
method to get this ID. In this article, we'll cover more details and how to use it.
What is an auto-increment ID?
Auto-increment ID is a numerical value that is automatically generated and incremented in the table and is usually used as a unique identifier for each record. Among databases, MySQL is one of the most commonly used databases that uses auto-incrementing IDs.
How to use auto-increment IDs in ThinkPHP
ThinkPHP, as an efficient, flexible and easy-to-use PHP framework, provides a simple method when dealing with auto-increment IDs in the database. Basically, any table that uses auto-incrementing IDs needs to define the primary key as id
and set it to auto-increment. In the model class, you need to tell the framework the primary key name and the data table name. For example:
//?定義模型類 class?UserModel?extends?Model { ????protected?$pk?=?'id'; ????protected?$table?=?'user'; }
After defining the model class, you can easily call $model->add()
to insert records into the database. For example:
//?插入一條新紀錄 $userModel?=?new?UserModel; $data?=?[ ????'username'?=>?'thinkphp', ????'email'?=>?'thinkphp@example.com', ????'password'?=>?'password', ]; $result?=?$userModel->add($data);
After executing $userModel->add($data)
, you can use $userModel->getLastInsID()
to get the The auto-incrementing ID of the record inserted in the database. For example:
//?獲取最后一次插入的自增?ID $userId?=?$userModel->getLastInsID();
How to use getLastInsID method in custom SQL?
If you use the $model->getLastInsID()
method in your own SQL, you may encounter the following error:
SQLSTATE[HY000]:?General?error:?2053?獲取最后插入ID失??!請檢查數據表是否有自增字段!
This is because$model->getLastInsID()
The method will query the database for relevant information about the auto-increment ID. In custom SQL, you need to call mysqli_insert_id()
and ## respectively. #PDO::lastInsertId() to get the last inserted auto-increment ID. For example:
//?執(zhí)行添加記錄的?SQL $sql?=?'INSERT?INTO?thinkphp_user?(username,?email,?password)?VALUES?(?,??,??)'; $result?=?$userModel->execute($sql,?[$data['username'],?$data['email'],?$data['password']]); //?獲取最后一次插入的自增?ID $lastInsertId?=?$userModel->getLastInsID(); if?(!$lastInsertId)?{ ????//?如果獲取失敗,嘗試使用?mysqli_insert_id()?或?PDO::lastInsertId() ????$lastInsertId?=?$userModel->execute('SELECT?LAST_INSERT_ID()'); }SummaryIn ThinkPHP, using auto-increment ID allows you to easily assign a unique identifier to each record. Using the
$model->getLastInsID() method, it is very easy to get the last inserted auto-incremented ID, and allows you to further process the data in the database. However, it should be noted that when using this method in custom SQL, you need to call
mysqli_insert_id() and
PDO::lastInsertId() respectively.
The above is the detailed content of What is an auto-increment ID? How to obtain and use thinkphp?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)
