Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在Joomla中修改外部数据库!3.0.3. 使用php请求_Php_Mysql_Joomla_Joomla Extensions - Fatal编程技术网

无法在Joomla中修改外部数据库!3.0.3. 使用php请求

无法在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) ///////

我一直在用Joomla在本地服务器上创建一个网站!3.0.3. 我已经成功地将一个外部数据库连接到此网站,并可以查询它(请参阅我前面的问题:)。但是当我试图修改外部数据库中的条目时,服务器返回一个错误屏幕

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

<?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 ----^