1

我一直在使用 Joomla 在我的本地服务器上创建一个网站!3.0.3。我已经成功地将一个外部数据库连接到这个网站并且可以查询它(见我之前的问题:WHERE statement not working in Joomla! 3.0.3. php request)。但是,当我尝试修改外部数据库中的条目时,服务器会返回错误屏幕。

这是我在 Joomla 后端使用的代码!(使用 Sourcerer 扩展)。我尝试将新货币添加到我的外部数据库中的 MySQL“货币”表中。

<?php

/**///////// LOAD EXTERNAL DATABASE (i.e. not the Joomla one) /////////**/

$option = array();
$option['driver'] = 'mysql'; // Database driver name
$option['host'] = 'localhost'; // Database host name
$option['user'] = 'root'; // User for database authentication
$option['password'] = ''; // Password for database authentication
$option['database'] = 'externaldatabase'; // Database name
$db = JDatabase::getInstance( $option );
/**///////// CREATE NEW QUERY OBJECT /////////**/

$query = $db->getQuery(true); //OK
/**///////// SELECT RECORDS & INSERT A NEW ROW /////////**/

$columns=array('ID', 'CurrencyCode', 'FullName');
$values=array('3', 'GBP', 'Pound Sterling');
$query->insert($db->quoteName('currency'));
$query->columns($db->quoteName($columns));
$query->values(implode(',', $values);

/**///////// RESET QUERY /////////**/

$db->setQuery($query); //OK

try {
    $result = $db->execute();
} catch (Exception $e) {
    // catch
}
?>

浏览器返回以下两个错误:

  • 解析错误:语法错误,意外的 ';' 在 C:\wamp\www\plugins\system\sourcerer\helper.php(450) 中:第 46 行运行时创建的函数
  • 致命错误:函数名称必须是第 454 行 C:\wamp\www\plugins\system\sourcerer\helper.php 中的字符串

你有什么建议吗?在此先感谢您的帮助。


这是适用于您感兴趣的人的更新代码!

<?php
$values=array('3', '"GBP"', '"Pound Sterling"');
$query->insert($db->quoteName('currency'));
$query->columns($db->quoteName($columns));
$query->values(implode(',', $values)**)**;
?>
4

1 回答 1

3

您忘记了右括号:

$query->values(implode(',', $values);
//                        Here ----^

所以它必须是: $query->values(implode(',', $values));

于 2013-04-09T08:58:37.403 回答