質問 > 管理機能 > 規格の編集でエラーが出ます |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
K.M |
投稿日時: 2020/4/29 10:15
対応状況: −−−
|
半人前 登録日: 2019/10/3 居住地: 投稿: 12 |
規格の編集でエラーが出ます ▼テンプレート
[EC-CUBE]2.13.5 [レンタルサーバ]GMO [OS]Linux [PHP] 5.3.28 (Core, date, ereg, libxml, pcre, filter, Reflection, SPL, hash, apache2handler, SimpleXML, xml, session, iconv, sqlite3, ctype, curl, dom, ftp, gd, gettext, standard, json, mbstring, mcrypt, mysql, mysqli, openssl, PDO, pdo_mysql, pgsql, sockets, zip, zlib, mhash) [データベース] PostgreSQL 7.4.30 [WEBサーバ]Apache/2.0.64 (Unix) [ブラウザ]chrome [現象] 商品管理で規格を編集しようとすると、エラーが発生して編集できない状態です。 どなたか、解決方法をご教示いただけますでしょうか。 ▼▼▼ デバッグ情報ここから ▼▼▼ http://*****/admin/products/product_class.php? SERVER_ADDR: ***.***.***.*** REMOTE_ADDR: ***.***.***.*** USER_AGENT: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36 Fatal error(E_USER_ERROR): DB処理でエラーが発生しました。 SQL: [INSERT INTO dtb_products_class(classcategory_id1,classcategory_id2,product_code,stock,price01,product_type_id,down_filename,down_realfilename,product_id,sale_limit,deliv_fee,point_rate,stock_unlimited,price02,creator_id,update_date,del_flg,create_date,product_class_id) SELECT $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,CURRENT_TIMESTAMP,$16,CURRENT_TIMESTAMP,$17] PlaceHolder: [array ( 0 => '264', 1 => '0', 2 => '', 3 => '', 4 => '', 5 => '1', 6 => '', 7 => '', 8 => '508', 9 => NULL, 10 => NULL, 11 => NULL, 12 => 0, 13 => 0, 14 => '2', 15 => 1, 16 => 3898, )] MDB2 Error: null value violates not-null constraint _doQuery: [Error message: Could not execute statement] [Last executed query: EXECUTE mdb2_statement_pgsql_87d8bf5d957457b59c49a731c8525a3896e6d755e ('264', '0', NULL, NULL, NULL, '1', NULL, NULL, '508', NULL, NULL, NULL, 0, 0, '2', 1, 3898)] [Native message: ERROR: null value in column "point_rate" violates not-null constraint] on [/home/*****/www/data/class/SC_Query.php(1095)] /home/*****/www/*****/admin/products/product_class.php(29): LC_Page_Admin_Products_ProductClass_Ex->process /home/*****/www/data/class_extends/page_extends/admin/products/LC_Page_Admin_Products_ProductClass_Ex.php(54): LC_Page_Admin_Products_ProductClass->process /home/*****/www/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php(61): LC_Page_Admin_Products_ProductClass->action /home/*****/www/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php(144): LC_Page_Admin_Products_ProductClass->registerProductClass /home/*****/www/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php(279): SC_Query->insert /home/*****/www/data/class/SC_Query.php(575): SC_Query->query /home/*****/www/data/class/SC_Query.php(873): SC_Query->execute /home/*****/www/data/class/SC_Query.php(1056): SC_Query->error /home/*****/www/data/class/SC_Query.php(1095): trigger_error ▲▲▲ デバッグ情報ここまで ▲▲▲ ▼▼▼ デバッグ情報ここから ▼▼▼ http://*****/admin/products/product_class.php? SERVER_ADDR: ***.***.***.*** REMOTE_ADDR: ***.***.***.*** USER_AGENT: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36 Fatal error(E_USER_ERROR): DB処理でエラーが発生しました。 SQL: [INSERT INTO dtb_tax_rule(calc_rule,tax_rate,tax_adjust,apply_date,member_id,update_date,tax_rule_id,country_id,pref_id,product_id,product_class_id,create_date) SELECT $1,$2,$3,$4,$5,CURRENT_TIMESTAMP,$6,$7,$8,$9,$10,CURRENT_TIMESTAMP] PlaceHolder: [array ( 0 => '2', 1 => '', 2 => 0, 3 => '2020/04/29 09:57:37', 4 => '2', 5 => 12, 6 => 0, 7 => 0, 8 => '491', 9 => 3900, )] MDB2 Error: null value violates not-null constraint _doQuery: [Error message: Could not execute statement] [Last executed query: EXECUTE mdb2_statement_pgsql_151a5033cdf629fe235b87d823ea9c4f08505f7f46 ('2', NULL, 0, '2020/04/29 09:57:37', '2', 12, 0, 0, '491', 3900)] [Native message: ERROR: null value in column "tax_rate" violates not-null constraint] on [/home/*****/www/data/class/SC_Query.php(1095)] /home/*****/www/*****/admin/products/product_class.php(29): LC_Page_Admin_Products_ProductClass_Ex->process /home/*****/www/data/class_extends/page_extends/admin/products/LC_Page_Admin_Products_ProductClass_Ex.php(54): LC_Page_Admin_Products_ProductClass->process /home/*****/www/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php(61): LC_Page_Admin_Products_ProductClass->action /home/*****/www/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php(144): LC_Page_Admin_Products_ProductClass->registerProductClass /home/*****/www/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php(283): SC_Helper_TaxRule::setTaxRuleForProduct /home/*****/www/data/class/helper/SC_Helper_TaxRule.php(248): SC_Helper_TaxRule::setTaxRule /home/*****/www/data/class/helper/SC_Helper_TaxRule.php(296): SC_Query->insert /home/*****/www/data/class/SC_Query.php(575): SC_Query->query /home/*****/www/data/class/SC_Query.php(873): SC_Query->execute /home/*****/www/data/class/SC_Query.php(1056): SC_Query->error /home/*****/www/data/class/SC_Query.php(1095): trigger_error ▲▲▲ デバッグ情報ここまで ▲▲▲ 以上です。 "point_rate"、"tax_rate"がnullになってエラーというところまでは分かったのですが、わたしが確認した限りではnotnullでデフォルトが0になっている状態でした。 何処を修正すればよいのかわからない状態です… どうぞ、よろしくお願いいたします。 |
468 |
投稿日時: 2020/4/30 15:45
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 規格の編集でエラーが出ます >商品管理で規格を編集しようとすると、エラーが発生して編集できない状態です。
具体的にはどの画面のどのタイミングでエラーが発生しますか? 「商品管理>商品登録(商品規格)」の画面でしょうか? また規格1、規格2の組み合わせは選択済みで 商品規格の詳細を入力→確認ページへボタンをクリックしたタイミングでしょうか? それとも確認ページの「この内容で登録する」ボタンをクリックしたタイミングでしょうか? 規格1、規格2の組み合わせが多すぎると PHPのmax_input_varsの上限に達してしまい、サーバへ送信するPOST値が途中で切り捨てられてしまうという現象が起こりますが その辺りは問題無さそうでしょうか? あと、デフォルトの環境で画面を確認してみましたが 「商品管理>商品登録(商品規格)」にはポイントレートを入力する項目は無いように思うのですが 商品規格毎にポイントを付与できるようなカスタマイズを施されていたりしますか?
|
K.M |
投稿日時: 2020/5/1 13:35
対応状況: −−−
|
半人前 登録日: 2019/10/3 居住地: 投稿: 12 |
Re: 規格の編集でエラーが出ます 早速のご回答、ありがとうございます。
>エラー発生タイミング 商品管理>商品登録(商品規格)を選択し、 規格1(必須)を選択、規格2は選択なし(デフォルト)にした上で確認ページへ。 その後、確認ページから「この内容で登録する」ボタンをクリックしたタイミングで発生します。 >規格1、規格2の組み合わせが多すぎる~ 確認の方法がわからず不明確ではありますが、規格1,2ともに項目数は2桁ありません。 おそらく上限には達していないかと思われます。 >ポイント付与 規格毎には付与をしていません。 商品単位ではポイント付与率の項目があり、ポイント付与ができるようになっています。 以上となります。 よろしくお願いいたします。 |
K.M |
投稿日時: 2020/5/7 11:45
対応状況: −−−
|
半人前 登録日: 2019/10/3 居住地: 投稿: 12 |
Re: 規格の編集でエラーが出ます 追加の情報です。
一つ目のエラーは 「商品管理」→「商品マスター」→商品の「規格」をクリック。 規格1の左端のチェックを外して、「確認ページへ」をクリック、「この内容で登録する」をクリックした時点でエラーが表示。 在庫数を無制限から0に変更してもエラーになりました。 上記の状態で発生したものになります。 いまだ解決できず、頭を悩ませております。 よろしくご教示のほど、お願いいたします。 |
468 |
投稿日時: 2020/5/7 13:49
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 規格の編集でエラーが出ます まずポイントレートの件ですが
/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php 279行目で insert文を発行する前に 252行目 $arrPC['point_rate'] = $arrDefault['point_rate']; でポイントレートを配列にセットしているようです。 $arrDefault['point_rate']は 231行目 $arrDefault = $this->getProductsClass($product_id); で商品規格の元となるレコード(classcategory_id1=0, classcategory_id2=0)より取得しているようです。 この辺りのレコードが辻褄が合わない状態になっていませんか? (例えば$arrDefaultの結果がnullになってしまうような状態) tax_rateについては、283行目のSC_Helper_TaxRule_Ex::setTaxRuleForProduct()のところかと思いますが デフォルトでは第1引数に$arrList['tax_rate'][$i]を渡す形となっていますが ここの記述が変わっていたりしますか? ちなみに$arrListは画面の入力欄の値を格納している配列のようです。
|
K.M |
投稿日時: 2020/5/7 15:58
対応状況: −−−
|
半人前 登録日: 2019/10/3 居住地: 投稿: 12 |
Re: 規格の編集でエラーが出ます 早速のご返信ありがとうございます。
>この辺りのレコードが辻褄が合わない状態になっていませんか? >(例えば$arrDefaultの結果がnullになってしまうような状態) phpの記述はデフォルトからいじっていない様です。 DBでclasscategory_id1,classcategory_id2に該当するカラムは2つ見つかり そちらの設定は データ型:integer NOTNULL:NOTNULL デフォルト:0 検査制約:1 となっております。 http://www.mediafire.com/view/uyny48dgxzyiiae/01.JPG/file この設定は何かおかしい状態でしょうか? >tax_rateについて こちらの記述に関しても、デフォルトから変えていないように思います。 282行目から、 // 税情報登録/更新 if (OPTION_PRODUCT_TAX_RULE) { SC_Helper_TaxRule_Ex::setTaxRuleForProduct($arrList['tax_rate'][$i], $arrPC['product_id'], $arrPC['product_class_id']); } } という記述になっております。 http://www.mediafire.com/view/4jtzznrh86jwtn7/02.JPG/file こちらはDB上の問題ではなく、phpの記述がおかしいということでしょうか。 お手数をかけて申し訳ございませんが、よろしくご確認のほど、お願いいたします。 |
468 |
投稿日時: 2020/5/7 17:51
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 規格の編集でエラーが出ます >この辺りのレコードが辻褄が合わない状態になっていませんか?
データベースの定義ではなく、データがおかしくなっていませんか?という意味になります。 ざっくりとした例えですが 商品規格でカラー「白」「黒」の2種類のデータを登録している場合、 dtb_products_classテーブルでは3行のレコードがある状態が正しい状態です。 product_class_id=1, product_id=1, classcategory_id1=0, classcategory_id2=0 product_class_id=2, product_id=1, classcategory_id1=1(白), classcategory_id2=0 product_class_id=3, product_id=1, classcategory_id1=2(黒), classcategory_id2=0 それが何かしらの理由で product_class_id=2, product_id=1, classcategory_id1=1(白), classcategory_id2=0 product_class_id=3, product_id=1, classcategory_id1=2(黒), classcategory_id2=0 のように2行だけになっていませんか?
|
K.M |
投稿日時: 2020/5/7 19:26
対応状況: −−−
|
半人前 登録日: 2019/10/3 居住地: 投稿: 12 |
Re: 規格の編集でエラーが出ます 詳しいご返信ありがとうございます!
確認しましたところ、規格が10種類の登録に対し、レコードが画像のようになっておりました。 これはおそらく、異常な状態…ということでしょうか? http://www.mediafire.com/file/zunkn63ygqxi9lp/03.JPG 逆に件数が膨大な数があるようで、どのような対処をしていけばよいのか ご教示いただければ幸いです。 よろしくお願いいたします。 |
468 |
投稿日時: 2020/5/8 23:50
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 規格の編集でエラーが出ます 投稿された画像だけを見れば、特に問題無いように見えますが
全てのデータが確認できるわけではないので何とも言えません。 規格が編集できない商品のデータはどのようになっていますか? そこはご自身で確認していただくしかないかと思います。
|
K.M |
投稿日時: 2020/5/11 15:39
対応状況: −−−
|
半人前 登録日: 2019/10/3 居住地: 投稿: 12 |
Re: 規格の編集でエラーが出ます 何度もご返答ありがとうございます。
商品のデータの確認がうまくできず、問題は解消されないままでした。 上記の規格変更の件ですが、何も変更しないまま確認を押しても同じエラーが出る状態だということが判明しました。 そこでpoint_rateだけでカラムを検索し、調べたところ dtb_order_detailのpoint_rateがnotnullになっておらず、大量のnullが登録されていました。 これは関係がありますでしょうか? もしこのnullを0に修正し、notnull設定をするのであれば、SQLでnull→0への置換作業を行う必要があるということになりますでしょうか?(1000件以上のnullがあったので…) 知識不足で誠に申し訳ございませんが、ご教示いただければ幸いです。 よろしくお願いいたします。 |
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |