[[v5:reference:Index]]\\
====== Reference Manual ======
See the [[v5:database:feature_comparison|Feature Comparison Matrix]]
===== Variables =====
| [[v5:reference:adodb_countrecs|$ADODB_COUNTRECS]] | In database drivers that do not support native recordset counting, controls whether to emulate the functionality |
| [[v5:reference:adodb_ansi_padding_off|$ADODB_ANSI_PADDING_OFF]] | Determines whether to right trim CHAR fields |
| [[v5:reference:adodb_cache_dir|$ADODB_CACHE_DIR]] | If using recordset caching, determines the directory holding the cached data |
| [[v5:reference:adodb_cache_class|$ADODB_CACHE_CLASS]] | If using recordset caching, specifies a class for cached recordset handling |
| [[v5:datetime:adodb_date_locale|$ADODB_DATE_LOCALE]] | Sets a default date and time format for the ADOdb date/time library |
| [[v5:reference:adodb_force_type|$ADODB_FORCE_TYPE]] | Changes the behavior of empty and null field handling when updating or creating records |
| [[v5:reference:adodb_fetch_mode|$ADODB_FETCH_MODE]] | Sets the global array type (numeric or associative) for returned recordsets |
| [[v5:reference:adodb_getone_eof|$ADODB_GETONE_EOF]] | Sets the returned value if a valid SQL statement does not match any record when the method [[v5:reference:connection:getone|getOne()]] is executed. |
| [[v5:reference:adodb_lang|$ADODB_LANG]] | Sets the language for error messages |
| [[v5:reference:adodb_quote_fieldnames|$ADODB_QUOTE_FIELDNAMES]] | Quotes, and optionally controls the casing of field name in constructed SQL statements |
| [[v5:reference:adodb_compat_fetch|$ADODB_COMPAT_FETCH]] | Determines the behavior of a record buffer if the pointer is advanced beyond EOF |
| [[v5:reference:connection:version#adodb_vers|$ADODB_vers]] | ADOdb version and release date |
===== Constants =====
|[[v5:reference:ADODB_ASSOC_CASE]]|Controls the case-specifity of recordset keys returned as associative arrays|
|[[v5:reference:ADODB_DEFAULT_METATYPE]]|Controls the default value returned if an unknown data type is tested|
===== The Database Connection Object =====
==== Establishing Connections ====
| [[v5:reference:connection:adonewconnection|adoNewConnection() ]] | Create a new connection object |
| [[v5:reference:connection:connect|connect()]] | Establishes a non-persistent connection with a database |
| [[v5:reference:connection:isconnected|isConnected()]] | Indicates if a connection has been established |
| [[v5:reference:connection:adonewconnection|newAdoConnection()]] | Is a pseudonym for [[v5:reference:connection:adonewconnection|adoNewConnection()]] |
| [[v5:reference:connection:nconnect|nConnect()]] | Forces the establishment of a new connection with a database |
| [[v5:reference:connection:pconnect|pConnect()]] | Establishes a persistent connection with a database |
| [[v5:reference:connection:selectdb|selectDb()]] | Select which database to connect to |
| [[v5:reference:connection:setconnectionparameter()]] | Sets an optional connection parameter |
| [[v5:reference:connection:close|close()]] | Closes a database connection |
**See Also** [[v5:reference:connection:properties|Public Properties Of The Connection]]
==== Working With Cached Recordsets ====
ADOdb supports the ability to work with cached query results, either through storing the results on local disks, or via the use of a [[http://memcached.org|Memcached Server]]. The functions below work the same as their non-caching equivalents, but also check for the availabiltiy of cached results first. This can help reduce database load.
| [[v5:userguide:local_cache|Local Caching Setup]] | Configuring local parameters for caching |
| [[v5:userguide:memcached|Memcached Setup]] | Configuring a memcached server connection |
| [[v5:reference:connection:cacheexecute|cacheExecute()]] | Executes a provided SQL statement and returns a handle to the result, or a cached handle if available |
| [[v5:reference:connection:cachegetall|cacheGetAll()]] | Executes a provided SQL statement and returns the entire recordset into an array |
| [[v5:reference:connection:cachegetassoc|cacheGetAssoc()]] | Executes a provided SQL statement and returns the entire recordset into an associatitive array with the value of the first column as a key |
| [[v5:reference:connection:cachegetcol|cacheGetCol()]] | Executes a provided SQL statement and returns the first column of each row in the recordset into an array |
| [[v5:reference:connection:cachegetone|cacheGetOne()]] | Retrieves the first column of the first matching row of an executed SQL statement |
| [[v5:reference:connection:cachegetrow|cacheGetRow()]] | Retrieves the first matching row of an executed SQL statement |
| [[v5:reference:connection:cacheselectlimit|cacheSelectLimit()]] | Executes a provided SQL statement and returns a handle to the result, with the ability to supply a starting offset and record count |
| [[v5:reference:connection:cacheflush|cacheFlush()]] | Flushes a cached result set |
==== Executing SQL ====
| [[v5:reference:connection:autoexecute|autoExecute()]] | Automatically prepares and executes Insert and Update statements based on supplied parameters |
| [[v5:reference:connection:execute|execute()]] | Executes a provided SQL statement and returns a handle to the result |
| [[v5:reference:connection:getall|getAll()]] | Executes a provided SQL statement and returns the entire recordset into an array |
| [[v5:reference:connection:getassoc|getAssoc()]] | Executes a provided SQL statement and returns the entire recordset into an associatitive array with the value of the first column as a key |
| [[v5:reference:connection:getcol|getCol()]] | Executes a provided SQL statement and returns the first column of each row of he entire recordset into an array |
| [[v5:reference:connection:getmedian|getMedian()]] | Returns the median value of a column in a table |
| [[v5:reference:connection:getone|getOne()]] | Retrieves the first column of the first matching row of an executed SQL statement |
| [[v5:reference:connection:getrow|getRow()]] | Retrieves the first matching row of an executed SQL statement |
| [[v5:reference:connection:replace|replace()]] | Provides a simple single record replacement function |
| [[v5:reference:connection:selectlimit()]] | Executes a provided SQL statement and returns a handle to the result, with the ability to supply a starting offset and record count |
| [[v5:reference:connection:setcharset|setCharSet()]] | Sets the character set for database connections (limited databases) |
==== Prepared Statements ====
| [[v5:reference:connection:inparameter|inParameter()]] | Sets an input parameter to a stored procedure |
| [[v5:reference:connection:outparameter|outParameter()]] | Receives an output parameter from a stored procedure |
| [[v5:reference:connection:param|param()]] | Returns a database specific parameter placeholder |
| [[v5:reference:connection:prepare|prepare()]] | Prepares an SQL statement and returns a handle to use |
| [[v5:reference:connection:preparesp|prepareSp()]] | Access a stored procedure and returns a handle to the procedure |
| [[v5:reference:connection:releasestatement|releaseStatement()]] | Releases a previously prepared statement |
==== Generating Database Independent SQL strings ====
| [[v5:reference:connection:addq|addQ()]] | Quotes a string, without prefixing nor appending quotes |
| [[v5:reference:connection:charmax|charMax()]] | Returns the largest length of data that can be inserted into a character field |
| [[v5:reference:connection:concat|concat()]] | Returns a database-specific concatenation of strings |
| [[v5:reference:connection:getupdatesql|getUpdateSQL()]] | Creates a database-specific SQL UPDATE statement based on supplied parameters |
| [[v5:reference:connection:getinsertsql|getInsertSQL()]] | Creates a database-specific SQL INSERT statement based on supplied parameters |
| [[v5:reference:connection:ifnull|ifNull()]] | Replaces a null value with a specified replacement |
| [[v5:reference:connection:qstr|quote()]] | Is a pseudonym for the function [[v5:reference:connection:qstr]] |
| [[v5:reference:connection:qstr|qStr()]] | Appropriately quotes strings with ' characters for insertion into the database |
| [[v5:reference:connection:textmax|textMax()]] | Returns the largest length of data that can be inserted into a text field |
==== Handling Blobs ====
| [[v5:reference:connection:blobdecode|blobDecode()]] || Decodes an encoded blob |
| [[v5:reference:connection:blobencode|blobEncode()]] || Encodes a blob field in preparation for database insertion |
| [[v5:reference:connection:updateblob|updateBlob()]] || Updates a blob field in a table using a syntax similar to autoexecute |
| [[v5:reference:connection:updateblobfile|updateBlobFile()]] || Updates a blob field in a table directly from a disk file using a syntax similar to autoexecute |
| [[v5:reference:connection:updateclob|updateClob()]] || Updates a clob field in a table using a syntax similar to autoexecute |
==== Paging/Scrolling ====
| [[v5:reference:recordset:absolutepage|absolutePage()]] | gets or sets the current page number in a paged recordset |
| [[v5:reference:recordset:atfirstpage|atFirstPage()]] | gets or sets whether at the first page in a paged recordset |
| [[v5:reference:recordset:atlastpage|atLastPage()]] | gets or sets whether at the last page in a paged recordset |
| [[v5:reference:connection:cachepageexecute|cachePageExecute()]]| Return a requested page from a (possibly) cached recordset |
| [[v5:reference:connection:lastpageno|lastPageNo()]] | Returns the page number of the last page in a paged recordset |
| [[v5:reference:recordset:maxrecordcount|maxRecordCount()]] | Returns the maximum number of records that can be returned when paging |
| [[v5:reference:connection:pageexecute|pageExecute()]] | Returns a requested page from a recordset |
==== Transaction Scoping ====
See the [[v5:userguide:transactions|Transaction Management Guide]]
| [[v5:reference:connection:begintrans|beginTrans()]] || Begins a granular transaction |
| [[v5:reference:connection:committrans|commitTrans()]] || Commits a granular transaction |
| [[v5:reference:connection:completetrans|completeTrans()]] || Completes a smart transaction |
| [[v5:reference:connection:failtrans|failTrans()]] || Forces a smart transaction to fail |
| [[v5:reference:connection:hasfailedtrans|hasFailedTrans()]] || Reports if a granular transaction has failed |
| [[v5:reference:connection:rollbacktrans|rollbackTrans()]] || Rollback a smart transaction |
| [[v5:reference:connection:settransactionmode|setTransactionMode()]] || Sets the isolation level of a transaction. |
| [[v5:reference:connection:starttrans|startTrans()]] || Starts a smart transaction |
| [[v5:reference:connection:transcnt|transCnt]]|| Returns the nesting level of smart transactions|
| [[v5:reference:connection:transcnt|transOff]]||Temporarily disables transactions|
==== Fetching Data ====
|[[v5:reference:connection:getfetchmode|getFetchMode()]]|Get the array type for return data|
|[[v5:reference:connection:setfetchmode|setFetchMode()]]|Set the array type for return data|
==== Manipulating Dates & Times ====
| [[v5:reference:connection:binddate|bindDate()]] | Creates a portable date field, for use in bind statements |
| [[v5:reference:connection:bindtimestamp|bindTimeStamp()]] | Creates a portable timestamp field, for use in bind statements |
| [[v5:reference:connection:dbdate|dbDate()]] | Creates a portable date field, for use in SQL statements |
| [[v5:reference:connection:dbtimestamp|dbTimeStamp()]] | Creates a portable timestamp field, for use in SQL statements |
| [[v5:reference:connection:offsetdate|offsetDate()]] | Creates a portable date offset field, for use in SQL statements |
| [[v5:reference:connection:setdatelocale|setDateLocale()]] | Changes the SQL connection to a specified Locale |
| [[v5:reference:connection:sqldate|sqlDate()]] | Returns a portably-formatted date string from a timestamp database column |
| [[v5:reference:connection:unixdate|unixDate()]] | Uses the database connection to create date strings |
| [[v5:reference:connection:unixtimestamp|unixTimeStamp()]] | Uses the database connection to create date/time strings |
==== Row Management ====
|[[v5:reference:connection:affected_rows|affected_rows()]]|Returns the number of rows affected by the last operation|
|[[v5:reference:connection:createsequence|createSequence()]]|Creates a sequence in the database|
|[[v5:reference:connection:dropsequence|dropSequence()]]|Drops a sequence in the database|
|[[v5:reference:connection:genid|genId()]]|A portable method of creating sequence numbers|
|[[v5:reference:connection:insert_id|insert_id()]]|Returns the last auto-increment number for an SQL statement|
|[[v5:reference:connection:rowlock|rowLock()]]|Lock a table row for a duration of a transaction|
==== Error Handling ====
|[[v5:reference:connection:errormsg|errorMsg()]]|Returns a database specific error message|
|[[v5:reference:connection:ignoreerrors|ignoreErrors()]]|Overrides the built-in transaction and error handling status|
|[[v5:reference:connection:metaerror|metaError()]]|Returns a portable error number based on a database specific error|
|[[v5:reference:connection:metaerrormsg|metaErrorMsg()]]|Returns a portable error message based on a portable error number. The language of the message may be controlled by [[v5:reference:adodb_lang|$ADODB_LANG]]|
====Query Rewriting ====
| [[v5:reference:connection:fnexecute|fnExecute and fnCacheExecute]] || A reference to a function that overrides the execute function |
==== Information ====
| [[v5:reference:connection:version|version()]] | ADOdb version number |
| [[v5:reference:connection:serverinfo|serverInfo()]] | Database server version and information |
===== The Recordset Object =====
==== Returns one field ====
|[[v5:reference:recordset:fields|fields()]]|Returns a single field in a single row of the current recordset|
==== PEAR Compatibility ====
This series of functions is designed to duplicate the commands and emulate the functionality provided by the now deprecated [[https://pear.php.net/manual/en/package.database.db.php|PEAR DB]] module. ADOdb also provides an unsupported PEAR Auth connection plugin in the ''/adodb/pear/auth'' directory.
| [[v5:reference:connection:fetchinto|fetchInto()]] | Fetches a recordset into an array |
| [[v5:reference:recordset:fetchnextobj|fetchNextObj()]] | Returns the current row as an object for convenience and advances the record pointer |
| [[v5:reference:recordset:fetchnextobj|fetchNextObject]] | This is a pseudonym for fetchNextObj |
| [[v5:reference:recordset:fetchobj|fetchObj()]] | Returns the current row as an object for convenience |
| [[v5:reference:recordset:fetchobj|fetchObject()]] | This is a pseudonym for fetchObj |
| [[v5:reference:recordset:fetchrow|fetchRow()]] | Reads a row of a result set and advances the recordset pointer |
| [[v5:reference:connection:close|free()]] | Is a pseudonym for **close()** |
| [[v5:reference:connection:getrowassoc|getRowAssoc()]] | Reads a row in associative mode if the recordset fetch mode is numeric |
| [[v5:reference:recordset:numcols|numCols()]] | Returns the number of columns in a row of a returned recordset |
| [[v5:reference:recordset:numrows|numRows()]] | Returns the number of rows in a returned recordset |
==== Returns all rows ====
|[[v5:reference:connection:getarray|getArray()]]|Returns a complete recordset as an array|
|[[v5:reference:connection:getassoc|getAssoc()]]|Returns an associate key/value array, with other options|
|[[v5:reference:connection:getarray|getRows()]]|This function is a pseudonym for [[v5:reference:connection:getarray|getArray()]]|
|[[v5:reference:connection:getrandrow|getRandRow()]]|Returns a random record from a recordset|
==== Scrolling ====
| [[v5:reference:recordset:move|move()]] || Move to the nth record of a recordset |
| [[v5:reference:recordset:movenext|moveNext()]] || Moves the cursor to the next record of the recordset from the current position |
| [[v5:reference:recordset:movefirst|moveFirst()]] || Moves the cursor to the first record of the recordset |
| [[v5:reference:recordset:movelast|moveLast()]] || Moves to the last record of a recordset |
| [[v5:reference:connection:currentrow|AbsolutePosition()]] || absolutePosition() is a pseudonym for currentRow() |
| [[v5:reference:connection:currentrow|currentRow()]] || Returns the current row number of a recordset |
==== Menu generation ====
| [[v5:reference:recordset:getmenu|getMenu()]] | Creates a string containing a single or multi select HTML select box |
| [[v5:reference:recordset:getmenu2|getMenu2()]] | (deprecated) Creates a string containing a basic HTML select box with alternate comparison criteria to getMenu() |
| [[v5:reference:recordset:getmenu3|getMenu3()]] | Creates a string containing a grouped (optgroup) HTML single or muilti-select box |
==== Dates ====
| [[v5:reference:connection:unixdate|unixDate()]] || Uses the DBMS to return a timestamp from a date string |
| [[v5:reference:connection:unixtimestamp|unixTimeStamp()]] || Uses the DBMS to return a timestamp from a date/time string |
| [[v5:reference:connection:userdate|userDate()]] || Returns a formatted date string for a user supplied timestamp |
| [[v5:reference:connection:usertimestamp|userTimeStamp()]] || Returns a formatted date/time string for a user supplied timestamp |
==== Recordset Info ====
| [[v5:reference:recordset:nextrecordset|nextRecordSet()]] | In databases that allow accessing of recordsets, retrieves the next set |
| [[v5:reference:connection:po_recordcount|po_recordCount()]]| A Portable record count supported by all databases|
| [[v5:reference:connection:recordcount|recordCount()]]| Interface to the native driver recordCount function |
| [[v5:reference:connection:recordcount|rowCount()]]|Is a synonym for [[v5:reference:connection:recordcount|recordCount()]] |
==== Field Info ====
| [[v5:reference:recordset:fetchfield|fetchField()]] | Returns raw, database specific information about a field |
| [[v5:reference:recordset:fieldcount|fieldCount()]] | Returns the the number of fields in a row of a recordset |
| [[v5:reference:recordset:fieldtypesarray|fieldTypesArray()]] | Returns an array of all the [[v5:dictionary:adofieldobject|ADOFieldObjects]] columns in a row |
==== Recordset Cleanup ====
|[[v5:reference:connection:close|close()]]|Closes both the recordset and database connection|