->mapping¶
Contains mapping of tablename and fields in a table. Notice that entering any configuration for a table might affect performance since translation is needed before results are returned or queries executed.
Mapping is totally transparent for applications inside TYPO3 and mapping is independent of handler type - the translation goes on between these two spheres.
Mapping can work as a work-around for reserved field- or table names.
mapTableName¶
Key
mapTableName
Datatype
string
Description
Real, physical tablename for the table
mapFieldNames[fieldname]¶
Key
mapFieldNames[fieldname]
Datatype
string
Description
Real, physical fieldname in the table.
Example¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29  | $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['dbal']['mapping'] = array(
    'sys_note' => array(
        'mapTableName' => 'SysNoteTable',
        'mapFieldNames' =>  array(
            'uid' => 'uid999',
            'pid' => 'pid999',
            'deleted' => 'deleted999',
            'tstamp' => 'tstamp999',
            'crdate' => 'crdate999',
            'cruser' => 'cruser999',
            'author' => 'author999',
            'email' => 'email999',
            'subject' => 'subject999',
            'message' => 'message999',
            'personal' => 'personal999',
            'category' => 'category999'
        )
    ),
    '_tt_content' => array(
        'mapTableName' => 'tt_content999',
        'mapFieldNames' => array(
            'bodytext' => 'bodytext999',
            'header' => 'header999',
            'image' => 'image999',
            'pid' => 'pid999',
            'sorting' => 'sorting999',
        )
    )
);
 | 
In this example two classic TYPO3 tables have been mapped; the
sys_note table (from the sys_note extension) and the
tt_content table (Content Elements).
According to this mapping example the sys_note table in the database
(or whatever data source) is actually named SysNoteTable and all
fields are actually named differently; with “…999” after (this is
just an example).
When you try to make a look up in the sys_note like
SELECT uid FROM sys_note WHERE uid=123
then this is transformed into
SELECT uid999 FROM SysNoteTable WHERE uid999=123
before executed. And the result row which will be array('uid999' => 123) will be transformed back to
array('uid' => 123) before you receive it inside of TYPO3.
Warning
Mapping tables to two different databases on localhost
will most likely only work if [SYS][no_pconnect] is set in
$TYPO3_CONF_VARS. Otherwise PHP will, regardless of DBAL maintaining
different links for the databases, use the wrong one.