📄 database.php
字号:
$this->_offset = (int) $offset; } /** * This function replaces a string identifier <var>$prefix</var> with the * string held is the <var>_table_prefix</var> class variable. * * @access public * @param string The SQL query * @param string The common table prefix */ function replacePrefix( $sql, $prefix='#__' ) { $sql = trim( $sql ); $escaped = false; $quoteChar = ''; $n = strlen( $sql ); $startPos = 0; $literal = ''; while ($startPos < $n) { $ip = strpos($sql, $prefix, $startPos); if ($ip === false) { break; } $j = strpos( $sql, "'", $startPos ); $k = strpos( $sql, '"', $startPos ); if (($k !== FALSE) && (($k < $j) || ($j === FALSE))) { $quoteChar = '"'; $j = $k; } else { $quoteChar = "'"; } if ($j === false) { $j = $n; } $literal .= str_replace( $prefix, $this->_table_prefix,substr( $sql, $startPos, $j - $startPos ) ); $startPos = $j; $j = $startPos + 1; if ($j >= $n) { break; } // quote comes first, find end of quote while (TRUE) { $k = strpos( $sql, $quoteChar, $j ); $escaped = false; if ($k === false) { break; } $l = $k - 1; while ($l >= 0 && $sql{$l} == '\\') { $l--; $escaped = !$escaped; } if ($escaped) { $j = $k+1; continue; } break; } if ($k === FALSE) { // error in the query - no end quote; ignore it break; } $literal .= substr( $sql, $startPos, $k - $startPos + 1 ); $startPos = $k+1; } if ($startPos < $n) { $literal .= substr( $sql, $startPos, $n - $startPos ); } return $literal; } /** * Get the active query * * @access public * @return string The current value of the internal SQL vairable */ function getQuery() { return $this->_sql; } /** * Execute the query * * @abstract * @access public * @return mixed A database resource if successful, FALSE if not. */ function query() { return; } /** * Get the affected rows by the most recent query * * @abstract * @access public * @return int The number of affected rows in the previous operation * @since 1.0.5 */ function getAffectedRows() { return; } /** * Execute a batch query * * @abstract * @access public * @return mixed A database resource if successful, FALSE if not. */ function queryBatch( $abort_on_error=true, $p_transaction_safe = false) { return false; } /** * Diagnostic function * * @abstract * @access public */ function explain() { return; } /** * Get the number of rows returned by the most recent query * * @abstract * @access public * @param object Database resource * @return int The number of rows */ function getNumRows( $cur=null ) { return; } /** * This method loads the first field of the first row returned by the query. * * @abstract * @access public * @return The value returned in the query or null if the query failed. */ function loadResult() { return; } /** * Load an array of single field results into an array * * @abstract */ function loadResultArray($numinarray = 0) { return; } /** * Fetch a result row as an associative array * * @abstract */ function loadAssoc() { return; } /** * Load a associactive list of database rows * * @abstract * @access public * @param string The field name of a primary key * @return array If key is empty as sequential list of returned records. */ function loadAssocList( $key='' ) { return; } /** * This global function loads the first row of a query into an object * * * @abstract * @access public * @param object */ function loadObject( ) { return; } /** * Load a list of database objects * * @abstract * @access public * @param string The field name of a primary key * @return array If <var>key</var> is empty as sequential list of returned records. * If <var>key</var> is not empty then the returned array is indexed by the value * the database key. Returns <var>null</var> if the query fails. */ function loadObjectList( $key='' ) { return; } /** * Load the first row returned by the query * * @abstract * @access public * @return The first row of the query. */ function loadRow() { return; } /** * Load a list of database rows (numeric column indexing) * * If <var>key</var> is not empty then the returned array is indexed by the value * the database key. Returns <var>null</var> if the query fails. * * @abstract * @access public * @param string The field name of a primary key * @return array */ function loadRowList( $key='' ) { return; } /** * Inserts a row into a table based on an objects properties * @param string The name of the table * @param object An object whose properties match table fields * @param string The name of the primary key. If provided the object property is updated. */ function insertObject( $table, &$object, $keyName = NULL ) { return; } /** * Update an object in the database * * @abstract * @access public * @param string * @param object * @param string * @param boolean */ function updateObject( $table, &$object, $keyName, $updateNulls=true ) { return; } /** * Print out an error statement * * @param boolean If TRUE, displays the last SQL statement sent to the database * @return string A standised error message */ function stderr( $showSQL = false ) { if ( $this->_errorNum != 0 ) { return "DB function failed with error number $this->_errorNum" ."<br /><font color=\"red\">$this->_errorMsg</font>" .($showSQL ? "<br />SQL = <pre>$this->_sql</pre>" : ''); } else { return "DB function reports no errors"; } } /** * Get the ID generated from the previous INSERT operation * * @abstract * @access public * @return mixed */ function insertid() { return; } /** * Get the database collation * * @abstract * @access public * @return string Collation in use */ function getCollation() { return; } /** * Get the version of the database connector * * @abstract */ function getVersion() { return 'Not available for this connector'; } /** * List tables in a database * * @abstract * @access public * @return array A list of all the tables in the database */ function getTableList() { return; } /** * Shows the CREATE TABLE statement that creates the given tables * * @abstract * @access public * @param array|string A table name or a list of table names * @return array A list the create SQL for the tables */ function getTableCreate( $tables ) { return; } /** * Retrieves information about the given tables * * @abstract * @access public * @param array|string A table name or a list of table names * @param boolean Only return field types, default true * @return array An array of fields by table */ function getTableFields( $tables, $typeonly = true ) { return; } // ---- // ADODB Compatibility Functions // ---- /** * Get a quoted database escaped string * * @param string A string * @param boolean Default true to escape string, false to leave the string unchanged * @return string * @access public */ function Quote( $text, $escaped = true ) { return '\''.($escaped ? $this->getEscaped( $text ) : $text).'\''; } /** * ADODB compatability function * * @access public * @param string SQL * @since 1.5 */ function GetCol( $query ) { $this->setQuery( $query ); return $this->loadResultArray(); } /** * ADODB compatability function * * @access public * @param string SQL * @return object * @since 1.5 */ function Execute( $query ) { jimport( 'joomla.database.recordset' ); $query = trim( $query ); $this->setQuery( $query ); if (eregi( '^select', $query )) { $result = $this->loadRowList(); return new JRecordSet( $result ); } else { $result = $this->query(); if ($result === false) { return false; } else { return new JRecordSet( array() ); } } } /** * ADODB compatability function * * @access public * @since 1.5 */ function SelectLimit( $query, $count, $offset=0 ) { jimport( 'joomla.database.recordset' ); $this->setQuery( $query, $offset, $count ); $result = $this->loadRowList(); return new JRecordSet( $result ); } /** * ADODB compatability function * * @access public * @since 1.5 */ function PageExecute( $sql, $nrows, $page, $inputarr=false, $secs2cache=0 ) { jimport( 'joomla.database.recordset' ); $this->setQuery( $sql, $page*$nrows, $nrows ); $result = $this->loadRowList(); return new JRecordSet( $result ); } /** * ADODB compatability function * * @access public * @param string SQL * @return array * @since 1.5 */ function GetRow( $query ) { $this->setQuery( $query ); $result = $this->loadRowList(); return $result[0]; } /** * ADODB compatability function * * @access public * @param string SQL * @return mixed * @since 1.5 */ function GetOne( $query ) { $this->setQuery( $query ); $result = $this->loadResult(); return $result; } /** * ADODB compatability function * * @since 1.5 */ function BeginTrans() { } /** * ADODB compatability function * * @since 1.5 */ function RollbackTrans() { } /** * ADODB compatability function * * @since 1.5 */ function CommitTrans() { } /** * ADODB compatability function * * @since 1.5 */ function ErrorMsg() { return $this->getErrorMsg(); } /** * ADODB compatability function * * @since 1.5 */ function ErrorNo() { return $this->getErrorNum(); } /** * ADODB compatability function * * @since 1.5 */ function GenID( $foo1=null, $foo2=null ) { return '0'; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -