$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->allowTransaction()
boolAllow a new transaction to begin right now? (i.e. supported and not already in one) 
$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)
PDOStatement WireDatabasePDOStatementPrepare 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)? 

Custom

NameReturnSummary 
$database->backups()
WireDatabaseBackupRetrieve new instance of WireDatabaseBackups ready to use with this connection 
$database->closeConnection()
(nothing)Close the PDO connection 
$database->columnExists(string $table)
bool arrayDoes the given column exist in given table? 
$database->execute(\PDOStatement $query)
boolExecute a PDO statement, with retry and error handling 
$database->getTables()
arrayGet array of all tables in this database. 
$database->getVariable(string $name)
string intGet the value of a MySQL variable 
$database->isOperator(string $str)
boolIs the given string a database comparison operator? 
$database->queryLog()
array bool intLog a query, or return logged queries 
$database->sqlMode()
string boolGet SQL mode, set SQL mode, add to existing SQL mode, or remove from existing SQL mode 
$database->tableExists(string $table)
boolDoes the given table exist in this database? 

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.168

Twitter updates

  • There’s a new modules directory on the ProcessWire site now up and running. In this post we’ll cover a few details about what’s changed and what’s new—More
    20 November 2020
  • ProcessWire 3.0.168 core updates — More
    26 October 2020
  • This week a 2nd new module for processing Stripe payments has been added to FormBuilder. Unlike our other Stripe Inputfield, this new one supports 3D Secure (SCA) payments. We’ll take a closer look at it in this post, plus a live demo— More
    16 October 2020

Latest news

  • ProcessWire Weekly #342
    In the 342nd issue of ProcessWire Weekly we're going to check out brand new admin theme called Admin Theme Canvas, a new module called MatomoWire, latest ProcessWire core updates, and more. Read on!
    Weekly.pw / 28 November 2020
  • New ProcessWire modules directory
    There’s a new modules directory on the ProcessWire site now up and running. In this post we’ll cover a few details about what’s changed and what’s new.
    Blog / 20 November 2020
  • Subscribe to weekly ProcessWire news

“I am currently managing a ProcessWire site with 2 million+ pages. It’s admirably fast, and much, much faster than any other CMS we tested.” —Nickie, Web developer