MDB_Common::getAssoc()
Synopsis
array &getAssoc
(
string $query
,
array $types
= null
,
array $params = array()
,
array $param_types
= null
, integer
$fetchmode
= MDB_FETCHMODE_DEFAULT
,
boolean $force_array
= false
, boolean
$group
= false
)
Описание
Fetch the entire result set of a query and return it as an associative array using the first column as the key. The function takes care of doing the query and freeing the results when finished. If the result set contains more than two columns, the value will be an array of the values from column 2 to 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).
Parameter
-
string
$query
-
the SQL query
-
array
$types
-
if supplied, the types of the columns in the result set will be set for fetching
-
array
$params
-
if supplied, prepareQuery()/ executeQuery() will be used with this array as execute parameters
-
array
$param_types
-
if supplied, the values in $param will automatically set to the passed datatypes
-
integer
$fetchmode
-
the fetch mode to use
-
boolean
$force_array
-
used only if the query returns exactly two columns. If TRUE, the values of the returned array will be one-element arrays instead of scalars.
-
boolean
boolean $group
-
if TRUE, the values of the returned array is wrapped in another array. If the same key value (in the first column) repeats itself, the values will be appended to this array instead of overwriting the existing values.
Return value
array
- associative array with results from the
query.
Throws
Error code | Error message | Reason | Solution |
---|---|---|---|
MDB_ERROR_INVALID | NULL | SQL statement for preparing is not valid. | See the prepareQuery() documentation, if you want to use a SQL statemt using wildcards. |
MDB_ERROR_NEED_MORE_DATA | NULL | To less data for filling the prepared SQL statement. |
Check the number of wild cards given in the SQL statement
prepareQuery()
. Check the count of
entries in the array for $params . The count
of entries have to be equal to the number of wild cards.
|
MDB_ERROR_NO_DB_SELECTED | NULL | No database was chosen. | Check the DSN in connect() . |
MDB_ERROR_TRUNCATED | NULL | The result set contains fewer then two columns | Check the SQL query or choose another get*() function |
every other error code | Database specific error | Check the database related section of PHP-Руководство to detect the reason for this error. In the most cases a misformed SQL statement. Ie. using LIMIT in a SQL-Statement for an Oracle database. |
Замечание
This function can not be called statically.
See
query() , limitQuery() , prepareQuery() , executeQuery() , getRow() , getOne() , getCol()