$database API variable / WireDatabasePDO class

All database operations in ProcessWire are performed via this PDO-style database class.

Click any linked item for full usage details and examples. Hookable methods are indicated with the icon. In addition to those shown below, the WireDatabasePDO class also inherits all the methods and properties of: Wire.

Show $var?             Show args?        

PDO

NameReturnSummary 
$database->beginTransaction()
boolInitiates a transaction 
$database->commit()
boolCommits a transaction 
$database->errorCode()
stringFetch the SQLSTATE associated with the last operation on the statement handle 
$database->errorInfo()
arrayFetch extended error information associated with the last operation on the database handle 
$database->exec($statement)
bool intExecute an SQL statement string 
$database->getAttribute(int $attribute)
mixedRetrieve a database connection attribute 
$database->inTransaction()
boolChecks if inside a transaction 
$database->lastInsertId()
stringReturns the ID of the last inserted row or sequence value 
$database->pdo()
PDOReturn the actual current PDO connection instance 
$database->prepare(string $statement)
PDOStatementPrepare an SQL statement for accepting bound parameters 
$database->query(string $statement)
PDOStatementExecutes an SQL statement, returning a result set as a PDOStatement object 
$database->quote(string $str)
stringQuote and escape a string value 
$database->rollBack()
boolRolls back a transaction 
$database->setAttribute(int $attribute, mixed $value)
boolSets an attribute on the database handle 
$database->supportsTransaction()
boolAre transactions available with current DB engine (or table)? 

Sanitization

NameReturnSummary 
$database->escapeCol(string $col)
stringSanitize a column name for _a-zA-Z0-9 
$database->escapeLike(string $like)
stringEscape a string value, plus escape characters necessary for a MySQL 'LIKE' phrase 
$database->escapeStr(string $str)
stringEscape a string value, same as $db->quote() but without surrounding quotes 
$database->escapeTable(string $table)
stringSanitize a table name for _a-zA-Z0-9 
$database->escapeTableCol(string $str)
stringSanitize a table.column string, where either part is optional 
$database->quote(string $str)
stringQuote and escape a string value 

Additional methods and properties

In addition to the methods and properties above, WireDatabasePDO also inherits the methods and properties of these classes:

API reference based on ProcessWire core version 3.0.137

Twitter updates

  • ProcessWire 3.0.142 has a lot of updates but the biggest is the addition of custom fields support for file and image fields. In this post, we take a closer look at that, and also outline all of the new features in the just-released FormBuilder v40— More
    11 October 2019
  • This week’s dev branch version brings you improvements to ProcessWire’s input->cookie API variable, plus it adds the ability to modify system URLs and paths at runtime. This post also includes some examples to demonstrate just how useful this can be— More
    20 September 2019
  • New post: This week we’ll take a look at a new version of FormBuilder that's on the way (with a screencast), as well as the latest version of the core: ProcessWire 3.0.140— More
    6 September 2019

Latest news

  • ProcessWire Weekly #283
    The 283rd issue of ProcessWire Weekly introduces ProcessWire 3.0.142 and FormBuilder v40, highlights some conference content, and features a new weekly poll continuing with the #processwireworks theme. Read on!
    Weekly.pw / 12 October 2019
  • ProcessWire 3.0.142 core updates
    This latest version of the core on the dev branch has a lot of updates, bnd the biggest is the addition of custom fields support for file and image fields. In this post, we take a closer look and also outline all of the new features in the just-released FormBuilder v40.
    Blog / 11 October 2019
  • Subscribe to weekly ProcessWire news

“We chose ProcessWire because of its excellent architecture, modular extensibility and the internal API. The CMS offers the necessary flexibility and performance for such a complex website like superbude.de. ProcessWire offers options that are only available for larger systems, such as Drupal, and allows a much slimmer development process.” —xport communication GmbH