我一直在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
}
?>
浏览器返回以下两个错误:
你有什么建议吗?在此先感谢您的帮助。
这是更新的代码,适用于您感兴趣的人!
<?php
$values=array('3', '"GBP"', '"Pound Sterling"');
$query->insert($db->quoteName('currency'));
$query->columns($db->quoteName($columns));
$query->values(implode(',', $values)**)**;
?>
答案 0 :(得分:3)
你忘记了一个右括号:
$query->values(implode(',', $values);
// Here ----^
所以一定是:
$query->values(implode(',', $values));