当方環境にて、標準配布状態で、再現を確認いたしました。
なお、手元で開発中のバージョンだと動作しましたので、パッチを貼っておきます。当てると動作するかも知れません。ただし、開発過程のものですので、新たな不具合を伴っている確率は高いです。
Index: data/class/helper/SC_Helper_DB.php
===================================================================
--- data/class/helper/SC_Helper_DB.php (revision 18371)
+++ data/class/helper/SC_Helper_DB.php (working copy)
@@ -225,7 +225,6 @@
if(!$this->g_root_on) {
$this->g_root_on = true;
- $objQuery = new SC_Query();
if (!isset($_GET['product_id'])) $_GET['product_id'] = "";
if (!isset($_GET['category_id'])) $_GET['category_id'] = "";
@@ -234,6 +233,7 @@
// 選択中のカテゴリIDを判定する
$category_id = $this->sfGetCategoryId($_GET['product_id'], $_GET['category_id']);
// ROOTカテゴリIDの取得
+ $objQuery = new SC_Query();
$arrRet = $this->sfGetParents($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $category_id);
$root_id = isset($arrRet[0]) ? $arrRet[0] : "";
} else {
Index: data/class/SC_DbConn.php
===================================================================
--- data/class/SC_DbConn.php (revision 18371)
+++ data/class/SC_DbConn.php (working copy)
@@ -40,29 +40,40 @@
function SC_DbConn($dsn = "", $err_disp = true, $new = false){
global $objDbConn;
- // Debugモード指定
- $options['debug'] = PEAR_DB_DEBUG;
- // 持続的接続オプション
- $options['persistent'] = PEAR_DB_PERSISTENT;
-
// 既に接続されていないか、新規接続要望の場合は接続する。
- if(!isset($objDbConn->connection) || $new) {
- if($dsn != "") {
- $objDbConn = DB::connect($dsn, $options);
+ if (!isset($objDbConn->connection) || $new) {
+ if ($dsn != "") {
$this->dsn = $dsn;
} else {
- if(defined('DEFAULT_DSN')) {
- $objDbConn = DB::connect(DEFAULT_DSN, $options);
+ if (defined('DEFAULT_DSN')) {
$this->dsn = DEFAULT_DSN;
} else {
return;
}
}
+
+ $options = array();
+ // Debugモード指定
+ $options['debug'] = PEAR_DB_DEBUG;
+ // 持続的接続オプション
+ $options['persistent'] = PEAR_DB_PERSISTENT;
+
+ $objDbConn = DB::connect($this->dsn, $options);
+
+ if (PEAR::isError($objDbConn)) {
+ $debugMsg = 'DB接続に失敗しました。' . "\n";
+ $debugMsg .= '・標準のメッセージ: ' . $objDbConn->getMessage() . "\n";
+ $debugMsg .= '・標準のコード: ' . $objDbConn->getCode() . "\n";
+ // パスワードを含むためコメントアウト
+ // $debugMsg .= '・DBMS 固有のユーザメッセージ: ' . $objDbConn->getUserInfo() . "\n";
+ // $debugMsg .= '・DBMS 固有のデバッグメッセージ: ' . $objDbConn->getDebugInfo() . "\n";
+ SC_Utils_Ex::sfDispException($debugMsg);
}
if (DB_TYPE == 'mysql') {
$objDbConn->query('SET NAMES utf8');
}
+ }
$this->conn = $objDbConn;
$this->err_disp = $err_disp;
Index: data/class/SC_Initial.php
===================================================================
--- data/class/SC_Initial.php (revision 18371)
+++ data/class/SC_Initial.php (working copy)
@@ -86,8 +86,6 @@
define ("DEFAULT_DSN",
DB_TYPE . "://" . DB_USER . ":" . DB_PASSWORD . "@"
. DB_SERVER . ":" .DB_PORT . "/" . DB_NAME);
- } else {
- define("DEFAULT_DSN", "pgsql://nobody:password@localhost:5432/eccubedb");
}
}
----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。