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

delete

Last edited by JP DeVries on Aug 10, 2013.

API:DB:delete

API Quick reference
Variable name: delete
Modx versions: 0.9.x + Evolution
Input parameters: (string $from [, string $where [, string $fields]])
Return if successful: true
Return type: bool
Return on failure: false
Object parent: DocumentParser -> DBAPI

Description

bool delete(string $from [, string $where [, string $fields]])

Deleting a row from a table, or even all the rows in a table, is very easy using the DBAPI delete function.

This function attempts to delete from the mysql table with the given paramaters. If no $where is given, this function will delete all the rows in the table $from. $where is the full string of a mysql where clause (eg: $where = "id=4 AND status='active'"). $fields denotes the specific fields to be deleted, leave blank to delete the whole row.

Function returns true on success, and false on failure.

$rows_affected = $modx->db->delete("table"[, "where value"]);

The "table" argument
The "table" argument is the table to update. You can use the MODx function to return the full tablename; this is probably the best way, since you won't have to remember to include the prefix of the table names for your site:

$table = $modx->getFullTableName("table");
$rows_affected = $modx->db->delete($table[, "where value"]);

The "where" argument
To optionally specify the specific record to delete, include the field and value to use in a WHERE clause:

$table = $modx->getFullTableName("table");
$rows_affected = $modx->db->delete($table, "field = value");

Usage / Examples

$table = $modx->getFullTableName("site_templates");
$rows_affected = $modx->db->delete($table, "id = 5");

will delete the template with ID 5.

function login($username, $password)
{
   global $modx, $table_prefix;
   $username = $modx->db->escape($username);
   $password = $modx->db->escape($password);

   $res = $modx->db->select("id", $table_prefix.".modx_web_users",
      "username='$username' AND password='".md5($password)."'");
   if($modx->db->getRecordCount($res))
   {
      $_SESSION['userid'] = $id;
      //other log in things...
   }
   else
   {
      //incorrect login
   }
}

Example2:

//delete a user of id $id
global $modx, $table_prefix;
$id = $modx->db->escape($id);
$modx->db->delete($table_prefix.".modx_web_users", "id = $id");

update, [insert], select, query, [getAffectedRows].

Notes

Using this function without specifying a "where" value will delete all the rows in the table. For a number of reasons it would be better to use a "TRUNCATE" query to empty a table.

$table = $modx->getFullTableName("table_name");
$sql = "TRUNCATE [TABLE] $table";
$modx->db->query($sql);

As with all mysql calls, care must be taken to sanitize the variables passed. One should use $s = $modx->db->escape($s) before passing to any of these functions.

Function Source

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

function delete($from,$where='',$fields='') {
   if (!$from)
      return false;
   else {
      $table = $from;
      $where = ($where != "") ? "WHERE $where" : "";
      return $this->query("DELETE $fields FROM $table $where");
   }
}

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