1. Getting Started
      1. Basic Installation
      2. What is MODx
    2. Content Editing
      1. Editing Documents
      2. MODx Tags
        1. Document Variables
      3. Terminology
      4. The Manager
      5. Who Should Read This
    3. Designing
      1. Adding Chunks
      2. Adding MODx Tags
        1. Resource Fields
      3. Adding Snippets
      4. Document Caching
      5. Template Basics
    4. Administration
      1. Friendly URL Solutions
      2. Manager Users
        1. Manager Roles And Groups
        2. Reset your Password - Unblock your User
        3. Why Manager Users, Roles and Groups
      3. Moving Site
      4. Taking sites down for maintenance
      5. Upgrading
      6. Web Users
        1. Creating a Web User
        2. Web User Groups and Document Groups
        3. Why Web Users and Groups
    5. Developer's Guide
      1. API Reference
        1. DBAPI
          1. delete
          2. escape
          3. getInsertId
          4. query
          5. select
          6. update
        2. Document Object
        3. DocumentParser Object
          1. addEventListener
          2. changeWebUserPassword
          3. documentContent
          4. documentGenerated
          5. documentIdentifier
          6. documentListing
          7. documentMethod
          8. documentObject
          9. getAllChildren
          10. getCachePath
          11. getChildIds
          12. getDocumentChildren
          13. getDocumentChildrenTVarOutput
          14. getDocumentChildrenTVars
          15. getLoginUserID
          16. getLoginUserName
          17. getLoginUserType
          18. getManagerPath
          19. getParent
          20. getParentIds
          21. getUserData
          22. hasPermission
          23. isBackend
          24. isFrontend
          25. logEvent
          26. maxParserPasses
          27. minParserPasses
          28. regClientCSS
          29. runSnippet
          30. table_prefix
          31. tstart
          32. webAlert
      2. Chunks
      3. Modules
        1. How to create and run a module from within the Content Manager
        2. Managing module dependencies
        3. Setting up configuration parameters
        4. Writing the module code
      4. Plugins
      5. Snippets
      6. Template Variables
        1. (at) Binding
          1. (at)CHUNK
          2. (at)DIRECTORY
          3. (at)DOCUMENT
          4. (at)EVAL
          5. (at)FILE
          6. (at)INHERIT
          7. (at)SELECT
          8. What are (at) Bindings
        2. Creating a Template Variable
        3. What are Template Variables
        4. Widgets
          1. Misc. Widget
          2. DataGrid Widget
          3. Floater Widget
          4. Hyperlink Widget
          5. Marquee Widget
          6. RichTextBox Widget
          7. Ticker Widget
          8. Viewport Widget
          9. What are Widgets

getInsertId

API:DB:getInsertId

API Quick reference
Variable name: getInsertId
Modx versions: 0.9.x + Evolution
Input parameters: ([resource conn_identifier])
Return if successful: AUTO_INCREMENT value from the last INSERT query.
Return type: int
Return on failure: 0 or false (see below)
Object parent: DocumentParser -> DBAPI

Description

integer getInsertId([resource conn_identifier $conn])

Get the atuomatically generated ID of the item that was just inserted into the database.

This function returns the AUTO_INCREMENT id of the last MySQL INSERT query. It will return 0 if there wasn't an AUTO_INCREMENT id created, and false if there is no link to a MySQL database. Since the returned value will be the id of the last query, you should call this function directly after your insertion query to ensure that the value is correct.

Usage

$newId = $modx->db->getInsertId();

Examples

This example function is passed two parameters: $fields and $table. The function checks that $fields is an array, and if so it proceeds to insert the data into the database and return the AUTO_INCREMENT value. If the query fals, or if $fields is not an array, it returns false.

function insert_user( $fields, $table ) {
        if( is_array( $fields ) {
                if( $modx->db->insert( $table, $fields ) ) {
                        return $modx->db->getInsertId();
                }
                else {
                        return false;
                }
        }
        else {
                return false;
        }
}

Example 2

$email = checkMail($_POST['email']);
$pass = makePass();
$sql = "INSERT INTO ".$modx->getFullTableName('web_users')." (username,password) VALUES ('".$email."', '".$pass."')";
$rs = $modx->db->query($sql);
$id = $modx->db->getInsertId();
$sql = "INSERT INTO ".$modx->getFullTableName('web_user_attributes')." (internalKey,email) VALUES (".$id.",'".$email."')";
$rs = $modx->db->query($sql);

In this case, we've used a simple registration form to get the email of a new member. First the returned POST value is checked through a function. A password is automatically generated with another function. These values are used as the username and password, and inserted into the web_users table. The automatically generated ID for this new member is retrieved with the getInsertId function. The new member's ID is now used to insert the user's email into the web_user_attributes table.

This same value can then be used to insert the new member into a desired web group. This would be useful for registering a member to receive a newsletter, for example.

[$modx->db->insert]()

Notes

It's worth noting that mysql_insert_id() (used by $modx->db->getInsertId()) returns an integer, so if you have a value larger than that (for example, a BIGINT), the value returned will be incorrect. In this case, you should use the last_insert_id() function instead.

Function Source

File: manager/includes/extenders/dbapi.mysql.class.inc.php
Line: 236

function getInsertId($conn=NULL) {
      if(!is_resource($conn)) { $conn = $this->conn; }
      return mysql_insert_id($conn);
   }

Suggest an edit to this page on GitHub (Requires GitHub account. Opens a new window/tab).