在用户函数中通过 TYPO3 连接外部数据库
External database connection via TYPO3 within a userfunction
我正在使用 TYPO3 6.2.X 并且有第二个外部数据库,我需要从该数据库的 table 更新一个值。
所以我实现了一个简单的用户函数,如下例(伪代码):
public function updateValue() {
$updateData = array(
'field1' => '1',
'field2' => '2'
);
$GLOBALS['TYPO3_DB']->exec_UPDATEquery(
'example',
'value = 1234',
$updateData
);
}
到目前为止这不是问题,但是 table "example" 是外部数据库的 table。为此,我通过扩展管理器激活了 dbal 和 adodb。之后我创建了文件 typo3conf/AdditionalConfiguration.php 其中包含以下配置:
<?php
$TYPO3_CONF_VARS['EXTCONF']['dbal']['handlerCfg'] = array (
'_DEFAULT' => array (
'type' => 'native',
'config' => array(
'username' => '',
'password' => '',
'host' => '',
'database' => '',
)
),
'extdatabase' => array (
'type' => 'native',
'config' => array(
'username' => 'username',
'password' => 'password',
'host' => 'host',
'database' => 'extern_database',
)
),
);
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['dbal']['table2handlerKeys'] = array(
'example' => 'extdatabase',
);
?>
但这不起作用,我得到以下异常:
错误:没有键的处理程序"extdatabase" :(
所以dbal的扩展配置没有设置正确。 dbal的documentation 好像已经过时了,因为没有引用AdditonalConfiguration.php而是localconf.php。所以我不知道如何解决这个问题,希望你能帮助我。
该死的:/
$TYPO3_CONF_VARS['EXTCONF']['dbal']['handlerCfg']
必须
$GLOBALS['EXTCONF']['dbal']['handlerCfg']
然后它就可以正常工作了。
我正在使用 TYPO3 6.2.X 并且有第二个外部数据库,我需要从该数据库的 table 更新一个值。
所以我实现了一个简单的用户函数,如下例(伪代码):
public function updateValue() {
$updateData = array(
'field1' => '1',
'field2' => '2'
);
$GLOBALS['TYPO3_DB']->exec_UPDATEquery(
'example',
'value = 1234',
$updateData
);
}
到目前为止这不是问题,但是 table "example" 是外部数据库的 table。为此,我通过扩展管理器激活了 dbal 和 adodb。之后我创建了文件 typo3conf/AdditionalConfiguration.php 其中包含以下配置:
<?php
$TYPO3_CONF_VARS['EXTCONF']['dbal']['handlerCfg'] = array (
'_DEFAULT' => array (
'type' => 'native',
'config' => array(
'username' => '',
'password' => '',
'host' => '',
'database' => '',
)
),
'extdatabase' => array (
'type' => 'native',
'config' => array(
'username' => 'username',
'password' => 'password',
'host' => 'host',
'database' => 'extern_database',
)
),
);
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['dbal']['table2handlerKeys'] = array(
'example' => 'extdatabase',
);
?>
但这不起作用,我得到以下异常:
错误:没有键的处理程序"extdatabase" :(
所以dbal的扩展配置没有设置正确。 dbal的documentation 好像已经过时了,因为没有引用AdditonalConfiguration.php而是localconf.php。所以我不知道如何解决这个问题,希望你能帮助我。
该死的:/
$TYPO3_CONF_VARS['EXTCONF']['dbal']['handlerCfg']
必须
$GLOBALS['EXTCONF']['dbal']['handlerCfg']
然后它就可以正常工作了。