質問 > 管理機能 > DBでカテゴリ情報をクリアしたあと、CSVで追加するとシステムエラーが発生 |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
taroh |
投稿日時: 2012/10/23 10:08
対応状況: −−−
|
新米 登録日: 2012/7/26 居住地: 投稿: 6 |
DBでカテゴリ情報をクリアしたあと、CSVで追加するとシステムエラーが発生 何度かCSVでカテゴリをインポートしていたところ、カテゴリの表示が崩れてしまいました。(おそらく表示ランクが崩れてしまったため)。そこで以下の対応を行ったところシステムエラーが発生して現在つまずいています。
【カテゴリのDBクリアと再インポート】 一旦DBのカテゴリ情報を空にして改めてインポートし直すため、以下の対応を行いました。 1) 管理画面からカテゴリのCSVファイルをダウンロード 2) カテゴリ関連のDBをクリアする TRUNCATE `dtb_category`; TRUNCATE `dtb_category_category_id_seq`; ALTER TABLE `dtb_category_category_id_seq` AUTO_INCREMENT = 1; 3) カテゴリCSVを修正 (1)でダウンロードしたCSVのうち、インポートに際し不要な数値を削除する。 ----- カテゴリID :そのまま カテゴリ名 : 〃 親カテゴリID: 〃 階層 :数値削除(1行目の項目名は残す) 表示ランク : 〃 削除フラグ : 〃 ----- 4) 管理画面から(3)のCSVファイルをインポート インポートすると、システムエラーが発生。エラーは発生するも、カテゴリは登録されています。 ----- Fatal error: Call to undefined method LC_Page_Admin_Products_UploadCSVCategory_Ex::sfGetParents() in /********/data/class/helper/SC_Helper_DB.php on line 754 ----- 【エラー原因の推測】 CSVの内容によってはエラーが発生しないことを確認しました。 例1) 問題なし カテゴリID,カテゴリ名,親カテゴリID,階層,表示ランク,削除フラグ 1,A,0,,, 2,B,0,,, 3,C,0,,, 例2) 問題なし カテゴリID,カテゴリ名,親カテゴリID,階層,表示ランク,削除フラグ 100000,A,0,,, 100001,B,0,,, 100002,C,0,,, 例3) システムエラー カテゴリID,カテゴリ名,親カテゴリID,階層,表示ランク,削除フラグ 100001,A,0,,, 100003,C,0,,, 以上から、特定のカテゴリIDがあるとエラーが発生するのでは?と推測するに至りました。上記の場合、カテゴリID:100003があるとシステムエラーが発生します。このカテゴリは実際に商品データから指定されているカテゴリだと分かっていて、それ以外のカテゴリ(ID:1,2,3…)は、いずれも指定している商品は存在しません。 ※一度システムエラーが発生したあと、例1や例2など問題なかったCSVファイルをインポートして追加しようとしてもなぜかシステムエラーが発生するようになります。 この結果から、以下の疑問が生まれました。 a) すでに商品側から指定されたカテゴリを削除してから追加することは出来ないのでしょうか?そのような仕様であれば、このケースではカテゴリ情報をクリアして入れ替えるだけではダメで、商品情報とカテゴリの削除→カテゴリの追加→商品追加という手順を踏まなければいけないのでしょうか? b) そもそもカテゴリ情報を入れ替える手順として、上記の(1)〜(4)では問題があるのでしょうか? よろしくお願いいたします。 [EC-CUBE]2.11.4 [PHP] PHP5.1.6 [データベース] MySQL5.0.77 [WEBサーバ] Apache/2.2.21 [ブラウザ] Firefox 15.0.1 |
seasoft |
投稿日時: 2012/10/23 10:48
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: DBでカテゴリ情報をクリアしたあと、CSVで追加するとシステムエラーが発生 とりあえず、エラー行を下記のように書き換えると、変化があるかも。
↓
バックアップなど忘れずに・・・
|
taroh |
投稿日時: 2012/10/23 14:48
対応状況: −−−
|
新米 登録日: 2012/7/26 居住地: 投稿: 6 |
Re: DBでカテゴリ情報をクリアしたあと、CSVで追加するとシステムエラーが発生 ご回答ありがとうございます!
SC_Helper_DB.php の754行目をいただいた内容に修正したところ、今度は766行目でエラーが出たので、計2箇所を修正してインポート出来ることを確認しました。有難うございます。 なお、今回の修正は商品情報が入ってる状況で、カテゴリを一から入れ替える際の一時的な対処手段と考えて良いでしょうか?であればphpファイルは以前のものに戻しておこうと思っています。
|
namacha |
投稿日時: 2012/10/25 0:11
対応状況: −−−
|
半人前 登録日: 2012/7/15 居住地: 投稿: 24 |
Re: DBでカテゴリ情報をクリアしたあと、CSVで追加するとシステムエラーが発生
結局、呼ばれる側(SC_Helper_DB.php)を直されたんですね。 もうそのクラスの内容をよく覚えてないですがコンストラクタがないクラスならSC_Helper_DB_Ex::で呼ぶ直しかたの方が正しいと思います。 とりあえずこの現象は"特定条件下"で、「何かの処理がエラーになっている」訳ではなくて、「(プログラムが)次に処理する関数が指定された場所になくてどうしていいか分からない」せいでエラーになっています。 今回SC_Helper_DB.phpで修正されているのは、それを正す物ですので、修正後のままで大丈夫だと思います。 「処理の遷移を正しくしたことで起きるエラー」は、また別の話です。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |