1

Joomla! を使用して、ローカル サーバーに Web サイトを作成しています。3.0.3。外部データベースをこの Web サイトに正常に接続し、クエリを実行できます (私の前の質問を参照してください: WHERE ステートメントが 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
}
?>

ブラウザは次の 2 つのエラーを返します。

  • 解析エラー: 構文エラー、予期しない ';' in C:\wamp\www\plugins\system\sourcerer\helper.php(450) : 46 行目のランタイム作成関数
  • 致命的なエラー: 関数名は C:\wamp\www\plugins\system\sourcerer\helper.php の 454 行目の文字列でなければなりません

何か提案はありますか?よろしくお願いします。


興味のある方のために機能する更新されたコードを次に示します。

<?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 に答える