无法在Joomla中修改外部数据库!3.0.3. 使用php请求
我一直在用Joomla在本地服务器上创建一个网站!3.0.3. 我已经成功地将一个外部数据库连接到此网站,并可以查询它(请参阅我前面的问题:)。但是当我试图修改外部数据库中的条目时,服务器返回一个错误屏幕 这是我在Joomla后端使用的代码!(使用Sourcerer扩展名)。我尝试向外部数据库中的MySQL“currency”表添加新货币无法在Joomla中修改外部数据库!3.0.3. 使用php请求,php,mysql,joomla,joomla-extensions,Php,Mysql,Joomla,Joomla Extensions,我一直在用Joomla在本地服务器上创建一个网站!3.0.3. 我已经成功地将一个外部数据库连接到此网站,并可以查询它(请参阅我前面的问题:)。但是当我试图修改外部数据库中的条目时,服务器返回一个错误屏幕 这是我在Joomla后端使用的代码!(使用Sourcerer扩展名)。我尝试向外部数据库中的MySQL“currency”表添加新货币 <?php /**///////// LOAD EXTERNAL DATABASE (i.e. not the Joomla one) ///////
<?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
}
?>
您忘记了右括号:
$query->values(implode(',', $values);
// Here ----^
因此,它必须是:
$query->values(内爆(',',$values))
如果代码中存在**///////LOAD外部数据库(即不是Joomla数据库)//////////**
,那么您希望正确使用PHP注释您是对的-为了可读性,我只想将代码注释设置为粗体格式。这是一个愚蠢的错误。现在我不再有错误了——浏览器返回典型的html页面。尽管如此,代码仍然不起作用-我一直在检查phpMyAdmin中的货币表,在这个表中,我只有两个条目是1欧元-欧元和2美元-美元。所以没有第三个条目是3英镑。你知道代码出了什么问题吗?PS:我也一直在尝试在phpMyAdmin中刷新。在我的代码$err=$db->getErrorMsg()的末尾,我做了以下几点;echo$err
和浏览器返回以下SQL=INSERT到货币中(ID
,CurrencyCode
,FullName
)值(3,英镑,英镑)。这就是我理解文本字符串周围缺少引号的原因。谢谢大家的帮助!干杯,@FinanceGardener我在Joomla API中查找可能出现的错误,现在看到了“更新”的代码,+1!!!再次感谢你的帮助!
$query->values(implode(',', $values);
// Here ----^