[ Index ] |
|
Code source de SPIP Agora 1.4 |
[Code source] [Imprimer] [Statistiques]
(pas de description)
Poids: | 2042 lignes (63 kb) |
Inclus ou requis: | 0 fois |
Référencé: | 0 fois |
Nécessite: | 0 fichiers |
DB_common:: (47 méthodes):
toString()
DB_common()
quoteString()
quote()
quoteIdentifier()
quoteSmart()
escapeSimple()
provides()
errorCode()
errorMessage()
raiseError()
setFetchMode()
setOption()
getOption()
prepare()
autoPrepare()
autoExecute()
buildManipSQL()
execute()
executeEmulateQuery()
executeMultiple()
freePrepared()
modifyQuery()
modifyLimitQuery()
query()
limitQuery()
getOne()
getRow()
getCol()
getAssoc()
getAll()
autoCommit()
commit()
rollback()
numRows()
affectedRows()
errorNative()
getSequenceName()
nextId()
createSequence()
dropSequence()
tableInfo()
getTables()
getListOf()
getSpecialQuery()
_rtrimArrayValues()
_convertNullArrayValuesToEmpty()
toString() X-Ref |
String conversation return: string |
DB_common() X-Ref |
Constructor |
quoteString($string) X-Ref |
DEPRECATED: Quotes a string so it can be safely used within string delimiters in a query return: string quoted string |
quote($string = null) X-Ref |
DEPRECATED: Quotes a string so it can be safely used in a query param: string $string the input string to quote return: string The NULL string or the string quotes |
quoteIdentifier($str) X-Ref |
Quote a string so it can be safely used as a table or column name Delimiting style depends on which database driver is being used. NOTE: just because you CAN use delimited identifiers doesn't mean you SHOULD use them. In general, they end up causing way more problems than they solve. Portability is broken by using the following characters inside delimited identifiers: + backtick (<kbd>`</kbd>) -- due to MySQL + double quote (<kbd>"</kbd>) -- due to Oracle + brackets (<kbd>[</kbd> or <kbd>]</kbd>) -- due to Access Delimited identifiers are known to generally work correctly under the following drivers: + mssql + mysql + mysqli + oci8 + odbc(access) + odbc(db2) + pgsql + sqlite + sybase InterBase doesn't seem to be able to use delimited identifiers via PHP 4. They work fine under PHP 5. param: string $str identifier name to be quoted return: string quoted identifier string |
quoteSmart($in) X-Ref |
Format input so it can be safely used in a query The output depends on the PHP data type of input and the database type being used. param: mixed $in data to be quoted return: mixed the format of the results depends on the input's |
escapeSimple($str) X-Ref |
Escape a string according to the current DBMS's standards In SQLite, this makes things safe for inserts/updates, but may cause problems when performing text comparisons against columns containing binary data. See the {@link http://php.net/sqlite_escape_string PHP manual} for more info. param: string $str the string to be escaped return: string the escaped string |
provides($feature) X-Ref |
Tell whether a DB implementation or its backend extension supports a given feature param: array $feature name of the feature (see the DB class doc) return: bool whether this DB implementation supports $feature |
errorCode($nativecode) X-Ref |
Map native error codes to DB's portable ones Requires that the DB implementation's constructor fills in the <var>$errorcode_map</var> property. param: mixed $nativecode the native error code, as returned by the return: int a portable DB error code, or DB_ERROR if this DB |
errorMessage($dbcode) X-Ref |
Map a DB error code to a textual message. This is actually just a wrapper for DB::errorMessage() param: integer $dbcode the DB error code return: string the corresponding error message, of false |
raiseError($code = DB_ERROR, $mode = null, $options = null,$userinfo = null, $nativecode = null) X-Ref |
Communicate an error and invoke error callbacks, etc Basically a wrapper for PEAR::raiseError without the message string. param: mixed integer error code, or a PEAR error object (all param: int error mode, see PEAR_Error docs param: mixed If error mode is PEAR_ERROR_TRIGGER, this is the param: string Extra debug information. Defaults to the last param: mixed Native error code, integer or string depending the return: object a PEAR error object |
setFetchMode($fetchmode, $object_class = 'stdClass') X-Ref |
Sets which fetch mode should be used by default on queries on this connection param: integer $fetchmode DB_FETCHMODE_ORDERED or param: string $object_class The class of the object |
setOption($option, $value) X-Ref |
Set run-time configuration options for PEAR DB Options, their data types, default values and description: <ul> <li> <var>autofree</var> <kbd>boolean</kbd> = <samp>false</samp> <br />should results be freed automatically when there are no more rows? </li><li> <var>debug</var> <kbd>integer</kbd> = <samp>0</samp> <br />debug level </li><li> <var>persistent</var> <kbd>boolean</kbd> = <samp>false</samp> <br />should the connection be persistent? </li><li> <var>portability</var> <kbd>integer</kbd> = <samp>DB_PORTABILITY_NONE</samp> <br />portability mode constant (see below) </li><li> <var>seqname_format</var> <kbd>string</kbd> = <samp>%s_seq</samp> <br />the sprintf() format string used on sequence names. This format is applied to sequence names passed to createSequence(), nextID() and dropSequence(). </li><li> <var>ssl</var> <kbd>boolean</kbd> = <samp>false</samp> <br />use ssl to connect? </li> </ul> ----------------------------------------- PORTABILITY MODES These modes are bitwised, so they can be combined using <kbd>|</kbd> and removed using <kbd>^</kbd>. See the examples section below on how to do this. <samp>DB_PORTABILITY_NONE</samp> turn off all portability features This mode gets automatically turned on if the deprecated <var>optimize</var> option gets set to <samp>performance</samp>. <samp>DB_PORTABILITY_LOWERCASE</samp> convert names of tables and fields to lower case when using <kbd>get*()</kbd>, <kbd>fetch*()</kbd> and <kbd>tableInfo()</kbd> This mode gets automatically turned on in the following databases if the deprecated option <var>optimize</var> gets set to <samp>portability</samp>: + oci8 <samp>DB_PORTABILITY_RTRIM</samp> right trim the data output by <kbd>get*()</kbd> <kbd>fetch*()</kbd> <samp>DB_PORTABILITY_DELETE_COUNT</samp> force reporting the number of rows deleted Some DBMS's don't count the number of rows deleted when performing simple <kbd>DELETE FROM tablename</kbd> queries. This portability mode tricks such DBMS's into telling the count by adding <samp>WHERE 1=1</samp> to the end of <kbd>DELETE</kbd> queries. This mode gets automatically turned on in the following databases if the deprecated option <var>optimize</var> gets set to <samp>portability</samp>: + fbsql + mysql + mysqli + sqlite <samp>DB_PORTABILITY_NUMROWS</samp> enable hack that makes <kbd>numRows()</kbd> work in Oracle This mode gets automatically turned on in the following databases if the deprecated option <var>optimize</var> gets set to <samp>portability</samp>: + oci8 <samp>DB_PORTABILITY_ERRORS</samp> makes certain error messages in certain drivers compatible with those from other DBMS's + mysql, mysqli: change unique/primary key constraints DB_ERROR_ALREADY_EXISTS -> DB_ERROR_CONSTRAINT + odbc(access): MS's ODBC driver reports 'no such field' as code 07001, which means 'too few parameters.' When this option is on that code gets mapped to DB_ERROR_NOSUCHFIELD. DB_ERROR_MISMATCH -> DB_ERROR_NOSUCHFIELD <samp>DB_PORTABILITY_NULL_TO_EMPTY</samp> convert null values to empty strings in data output by get*() and fetch*(). Needed because Oracle considers empty strings to be null, while most other DBMS's know the difference between empty and null. <samp>DB_PORTABILITY_ALL</samp> turn on all portability features ----------------------------------------- Example 1. Simple setOption() example <code> <?php $dbh->setOption('autofree', true); ?></code> Example 2. Portability for lowercasing and trimming <code> <?php $dbh->setOption('portability', DB_PORTABILITY_LOWERCASE | DB_PORTABILITY_RTRIM); ?></code> Example 3. All portability options except trimming <code> <?php $dbh->setOption('portability', DB_PORTABILITY_ALL ^ DB_PORTABILITY_RTRIM); ?></code> param: string $option option name param: mixed $value value for the option return: int DB_OK on success. DB_Error object on failure. |
getOption($option) X-Ref |
Returns the value of an option param: string $option option name return: mixed the option value |
prepare($query) X-Ref |
Prepares a query for multiple execution with execute() Creates a query that can be run multiple times. Each time it is run, the placeholders, if any, will be replaced by the contents of execute()'s $data argument. Three types of placeholders can be used: + <kbd>?</kbd> scalar value (i.e. strings, integers). The system will automatically quote and escape the data. + <kbd>!</kbd> value is inserted 'as is' + <kbd>&</kbd> requires a file name. The file's contents get inserted into the query (i.e. saving binary data in a db) Example 1. <code> <?php $sth = $dbh->prepare('INSERT INTO tbl (a, b, c) VALUES (?, !, &)'); $data = array( "John's text", "'it''s good'", 'filename.txt' ); $res = $dbh->execute($sth, $data); ?></code> Use backslashes to escape placeholder characters if you don't want them to be interpreted as placeholders: <pre> "UPDATE foo SET col=? WHERE col='over \& under'" </pre> With some database backends, this is emulated. {@internal ibase and oci8 have their own prepare() methods.}} param: string $query query to be prepared return: mixed DB statement resource on success. DB_Error on failure. |
autoPrepare($table, $table_fields, $mode = DB_AUTOQUERY_INSERT, $where = false) X-Ref |
Automaticaly generate an insert or update query and pass it to prepare() param: string $table name of the table param: array $table_fields ordered array containing the fields names param: int $mode type of query to make (DB_AUTOQUERY_INSERT or DB_AUTOQUERY_UPDATE) param: string $where in case of update queries, this string will be put after the sql WHERE statement return: resource handle for the query |
autoExecute($table, $fields_values, $mode = DB_AUTOQUERY_INSERT, $where = false) X-Ref |
Automaticaly generate an insert or update query and call prepare() and execute() with it param: string $table name of the table param: array $fields_values assoc ($key=>$value) where $key is a field name and $value its value param: int $mode type of query to make (DB_AUTOQUERY_INSERT or DB_AUTOQUERY_UPDATE) param: string $where in case of update queries, this string will be put after the sql WHERE statement return: mixed a new DB_Result or a DB_Error when fail |
buildManipSQL($table, $table_fields, $mode, $where = false) X-Ref |
Make automaticaly an sql query for prepare() Example : buildManipSQL('table_sql', array('field1', 'field2', 'field3'), DB_AUTOQUERY_INSERT) will return the string : INSERT INTO table_sql (field1,field2,field3) VALUES (?,?,?) NB : - This belongs more to a SQL Builder class, but this is a simple facility - Be carefull ! If you don't give a $where param with an UPDATE query, all the records of the table will be updated ! param: string $table name of the table param: array $table_fields ordered array containing the fields names param: int $mode type of query to make (DB_AUTOQUERY_INSERT or DB_AUTOQUERY_UPDATE) param: string $where in case of update queries, this string will be put after the sql WHERE statement return: string sql query for prepare() |
execute($stmt, $data = array() X-Ref |
Executes a DB statement prepared with prepare() Example 1. <code> <?php $sth = $dbh->prepare('INSERT INTO tbl (a, b, c) VALUES (?, !, &)'); $data = array( "John's text", "'it''s good'", 'filename.txt' ); $res =& $dbh->execute($sth, $data); ?></code> param: resource $stmt a DB statement resource returned from prepare() param: mixed $data array, string or numeric data to be used in return: object a new DB_Result or a DB_Error when fail |
executeEmulateQuery($stmt, $data = array() X-Ref |
Emulates the execute statement, when not supported param: resource $stmt a DB statement resource returned from execute() param: mixed $data array, string or numeric data to be used in return: mixed a string containing the real query run when emulating |
executeMultiple($stmt, $data) X-Ref |
This function does several execute() calls on the same statement handle $data must be an array indexed numerically from 0, one execute call is done for every "row" in the array. If an error occurs during execute(), executeMultiple() does not execute the unfinished rows, but rather returns that error. param: resource $stmt query handle from prepare() param: array $data numeric array containing the return: mixed DB_OK or DB_Error |
freePrepared($stmt) X-Ref |
Free the resource used in a prepared query param: $stmt The resurce returned by the prepare() function |
modifyQuery($query) X-Ref |
This method is used by backends to alter queries for various reasons It is defined here to assure that all implementations have this method defined. param: string $query query to modify return: the new (modified) query |
modifyLimitQuery($query, $from, $count, $params = array() X-Ref |
This method is used by backends to alter limited queries param: string $query query to modify param: integer $from the row to start to fetching param: integer $count the numbers of rows to fetch return: the new (modified) query |
query($query, $params = array() X-Ref |
Send a query to the database and return any results with a DB_result object The query string can be either a normal statement to be sent directly to the server OR if <var>$params</var> are passed the query can have placeholders and it will be passed through prepare() and execute(). param: string $query the SQL query or the statement to prepare param: mixed $params array, string or numeric data to be used in return: mixed a DB_result object or DB_OK on success, a DB |
limitQuery($query, $from, $count, $params = array() X-Ref |
Generates a limited query param: string $query query param: integer $from the row to start to fetching param: integer $count the numbers of rows to fetch param: mixed $params array, string or numeric data to be used in return: mixed a DB_Result object, DB_OK or a DB_Error |
getOne($query, $params = array() X-Ref |
Fetch the first column of the first row of data returned from a query Takes care of doing the query and freeing the results when finished. param: string $query the SQL query param: mixed $params array, string or numeric data to be used in return: mixed the returned value of the query. DB_Error on failure. |
getRow($query,$params = array() X-Ref |
Fetch the first row of data returned from a query Takes care of doing the query and freeing the results when finished. param: string $query the SQL query param: array $params array to be used in execution of the statement. param: int $fetchmode the fetch mode to use return: array the first row of results as an array indexed from |
getCol($query, $col = 0, $params = array() X-Ref |
Fetch a single column from a result set and return it as an indexed array param: string $query the SQL query param: mixed $col which column to return (integer [column number, param: mixed $params array, string or numeric data to be used in return: array an indexed array with the data from the first |
getAssoc($query, $force_array = false, $params = array() X-Ref |
Fetch the entire result set of a query and return it as an associative array using the first column as the key If the result set contains more than two columns, the value will be an array of the values from column 2-n. If the result set contains only two columns, the returned value will be a scalar with the value of the second column (unless forced to an array with the $force_array parameter). A DB error code is returned on errors. If the result set contains fewer than two columns, a DB_ERROR_TRUNCATED error is returned. For example, if the table "mytable" contains: <pre> ID TEXT DATE -------------------------------- 1 'one' 944679408 2 'two' 944679408 3 'three' 944679408 </pre> Then the call getAssoc('SELECT id,text FROM mytable') returns: <pre> array( '1' => 'one', '2' => 'two', '3' => 'three', ) </pre> ...while the call getAssoc('SELECT id,text,date FROM mytable') returns: <pre> array( '1' => array('one', '944679408'), '2' => array('two', '944679408'), '3' => array('three', '944679408') ) </pre> If the more than one row occurs with the same value in the first column, the last row overwrites all previous ones by default. Use the $group parameter if you don't want to overwrite like this. Example: <pre> getAssoc('SELECT category,id,name FROM mytable', false, null, DB_FETCHMODE_ASSOC, true) returns: array( '1' => array(array('id' => '4', 'name' => 'number four'), array('id' => '6', 'name' => 'number six') ), '9' => array(array('id' => '4', 'name' => 'number four'), array('id' => '6', 'name' => 'number six') ) ) </pre> Keep in mind that database functions in PHP usually return string values for results regardless of the database's internal type. param: string $query the SQL query param: boolean $force_array used only when the query returns param: mixed $params array, string or numeric data to be used in param: int $fetchmode the fetch mode to use param: boolean $group if true, the values of the returned array return: array associative array with results from the query. |
getAll($query,$params = array() X-Ref |
Fetch all the rows returned from a query param: string $query the SQL query param: array $params array to be used in execution of the statement. param: int $fetchmode the fetch mode to use return: array an nested array. DB error on failure. |
autoCommit($onoff=false) X-Ref |
enable automatic Commit param: boolean $onoff return: mixed DB_Error |
commit() X-Ref |
starts a Commit return: mixed DB_Error |
rollback() X-Ref |
starts a rollback return: mixed DB_Error |
numRows($result) X-Ref |
Returns the number of rows in a result object param: object DB_Result the result object to check return: mixed DB_Error or the number of rows |
affectedRows() X-Ref |
Returns the affected rows of a query return: mixed DB_Error or number of rows |
errorNative() X-Ref |
Returns an errormessage, provides by the database return: mixed DB_Error or message |
getSequenceName($sqn) X-Ref |
Generate the name used inside the database for a sequence The createSequence() docblock contains notes about storing sequence names. param: string $sqn the sequence's public name return: string the sequence's name in the backend |
nextId($seq_name, $ondemand = true) X-Ref |
Returns the next free id in a sequence param: string $seq_name name of the sequence param: boolean $ondemand when true, the seqence is automatically return: int the next id number in the sequence. DB_Error if problem. |
createSequence($seq_name) X-Ref |
Creates a new sequence The name of a given sequence is determined by passing the string provided in the <var>$seq_name</var> argument through PHP's sprintf() function using the value from the <var>seqname_format</var> option as the sprintf()'s format argument. <var>seqname_format</var> is set via setOption(). param: string $seq_name name of the new sequence return: int DB_OK on success. A DB_Error object is returned if |
dropSequence($seq_name) X-Ref |
Deletes a sequence param: string $seq_name name of the sequence to be deleted return: int DB_OK on success. DB_Error if problems. |
tableInfo($result, $mode = null) X-Ref |
Returns information about a table or a result set The format of the resulting array depends on which <var>$mode</var> you select. The sample output below is based on this query: <pre> SELECT tblFoo.fldID, tblFoo.fldPhone, tblBar.fldId FROM tblFoo JOIN tblBar ON tblFoo.fldId = tblBar.fldId </pre> <ul> <li> <kbd>null</kbd> (default) <pre> [0] => Array ( [table] => tblFoo [name] => fldId [type] => int [len] => 11 [flags] => primary_key not_null ) [1] => Array ( [table] => tblFoo [name] => fldPhone [type] => string [len] => 20 [flags] => ) [2] => Array ( [table] => tblBar [name] => fldId [type] => int [len] => 11 [flags] => primary_key not_null ) </pre> </li><li> <kbd>DB_TABLEINFO_ORDER</kbd> <p>In addition to the information found in the default output, a notation of the number of columns is provided by the <samp>num_fields</samp> element while the <samp>order</samp> element provides an array with the column names as the keys and their location index number (corresponding to the keys in the the default output) as the values.</p> <p>If a result set has identical field names, the last one is used.</p> <pre> [num_fields] => 3 [order] => Array ( [fldId] => 2 [fldTrans] => 1 ) </pre> </li><li> <kbd>DB_TABLEINFO_ORDERTABLE</kbd> <p>Similar to <kbd>DB_TABLEINFO_ORDER</kbd> but adds more dimensions to the array in which the table names are keys and the field names are sub-keys. This is helpful for queries that join tables which have identical field names.</p> <pre> [num_fields] => 3 [ordertable] => Array ( [tblFoo] => Array ( [fldId] => 0 [fldPhone] => 1 ) [tblBar] => Array ( [fldId] => 2 ) ) </pre> </li> </ul> The <samp>flags</samp> element contains a space separated list of extra information about the field. This data is inconsistent between DBMS's due to the way each DBMS works. + <samp>primary_key</samp> + <samp>unique_key</samp> + <samp>multiple_key</samp> + <samp>not_null</samp> Most DBMS's only provide the <samp>table</samp> and <samp>flags</samp> elements if <var>$result</var> is a table name. The following DBMS's provide full information from queries: + fbsql + mysql If the 'portability' option has <samp>DB_PORTABILITY_LOWERCASE</samp> turned on, the names of tables and fields will be lowercased. param: object|string $result DB_result object from a query or a param: int $mode either unused or one of the tableInfo modes: return: array an associative array with the information requested. |
getTables() X-Ref |
getListOf($type) X-Ref |
list internal DB info valid values for $type are db dependent, often: databases, users, view, functions param: string $type type of requested info return: mixed DB_Error or the requested data |
getSpecialQuery($type) X-Ref |
Returns the query needed to get some backend info param: string $type What kind of info you want to retrieve return: string The SQL query string |
_rtrimArrayValues(&$array) X-Ref |
Right trim all strings in an array param: array $array the array to be trimmed (passed by reference) return: void |
_convertNullArrayValuesToEmpty(&$array) X-Ref |
Convert all null values in an array to empty strings param: array $array the array to be de-nullified (passed by reference) return: void |
Généré le : Sat Feb 24 14:40:03 2007 | par Balluche grâce à PHPXref 0.7 |