- ベストアンサー
MySQLからPostgreSQLへ移行後に急に500エラーが発生した原因と解決策
- EC-CUBE2.4を利用しており、MySQL5からPostgreSQL8へ移行しましたが、ECトップページにアクセスすると急に500エラーが発生します。
- エラーログを確認すると、PHPの構文エラーが関連していることがわかりました。具体的には、/パス/eccube/data/class/SC_DbConn.phpの137行目にsyntax errorがあり、また、DB_ErrorクラスのgetCol()メソッドが未定義というエラーも報告されています。
- 問題の解決策としては、まず構文エラーを修正する必要があります。その後、DB_ErrorクラスのgetCol()メソッドを正しく定義する必要があります。このように修正を行うことで、500エラーが解消される可能性があります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
エラーの内容自体は単純きわまりなく、 getCol という method が見つからん といっているに過ぎないけど、 EC-Cube ってよく知らんけど、DB用のライブラリでも含んでいるんでしょうか? そこのライブラリでは、Mysql 経由の getCol はできるけど、PostgreSQL は 無いとか言う話では? 自分で手を入れないと直らない気もしますが、Version Up でも 直っているかもしれない。 私ならライブラリを直しますか、別のライブラリ経由でDBにアクセスするか
その他の回答 (2)
- taka451213
- ベストアンサー率47% (436/922)
こんにちは これ、何ですか? 実際のソースですか? ところどころコメントになってますが、どうして??? これじゃ動かないかと・・・。 もう少し全体がわからないと、何とも・・・。
- taka451213
- ベストアンサー率47% (436/922)
こんばんは ソース見てないので、なんとも・・・。 エラーとしては、 SC_DbConn.phpの137行目と言ってますが。
補足
すいません。ありがとうございます。 ソースとは、どのファイルのソースでしょうか? $this->result = $result; return $this->result; } // function getCol($n, $col, $arr = "") { // mysqlの場合にはビュー表を変換する if (DB_TYPE == "mysql") $n = $this->dbFactory->sfChangeMySQL($n); //if ($arr) { ●$result = $this->conn->getCol($n, $col, $arr); } else { $result = $this->conn->getCol($n, $col); } if ($this->conn->isError($result)) { $this->send_err_mail($result, $n); } $this->result = $result; return $this->result; }
補足
バージョンアップもしてみたのですが、直らない様です。