質問 > 管理機能 > 規格の編集でエラーが出ます |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
468 |
投稿日時: 2020/5/11 19:17
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 規格の編集でエラーが出ます デフォルトのデータベースで確認する限りでは
dtb_order_detailのpoint_rateはnot nullでdefault 0が設定されているようです。 dtb_order_detailテーブルは商品規格ページの変更には直接は関係ないと思いますが もしかしたら、最初の商品登録をSQLで直接実施されたりしましたか? その時にpoint_rateをnullで登録されたりしたのでしょうか? その後、注文時のエラー解消の為にdtb_order_detailテーブルpoint_rateカラムのnot nullも変更されたという可能性があるのでしょうか? 現状、受注関連で支障がないのであれば、dtb_order_detailテーブルの定義は変更しないほうが良いのではないでしょうか? 注文が通らなくなったりするのは一番困るのではないでしょうか?
|
K.M |
投稿日時: 2020/5/12 10:16
対応状況: −−−
|
半人前 登録日: 2019/10/3 居住地: 投稿: 12 |
Re: 規格の編集でエラーが出ます 実は数年前、サーバが急に移転を行ったせいでEC-CUBEが稼働しなくなり、旧サーバからデータを引っこ抜いて現サーバへ移動し、原状回帰を試みて再構築したということがありました。
EC-CUBE自体の再構築は比較的問題なくできたそうですが、元のDBはMySQLだったところからPosgleSQLでないと対応ができないという状況になり、データの移行を行ったようです。 当時、その作業に携わった担当の内、DBに携わったものが退職したため、詳細の確認はできませんでした。 ですが、EC-CUBE側(html)の担当者によると、DBの構造は変えていないと聞いているそうなので、データの入力をした際にdefault 0がNullに代わってしまったのではないかと考えております。 実際のところ、ポイント付与の機能は使っておりません。 そしてカラムの中を確認すると point_rate/count 0/20 NULL/1675 となっており、もとからdefault 0で使用されていたのではないかと考えております。 今回のエラーには問題ないpoint_rateということでしょうか? |
468 |
投稿日時: 2020/5/13 9:10
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 規格の編集でエラーが出ます dtb_order_detailテーブルの設定は商品規格の編集画面のエラーには関係ないとは思います。
ただ、あくまでお聞きしている範囲での予想ですので絶対関係無いのかと言われると保証は致しかねます。
|
K.M |
投稿日時: 2020/5/14 16:20
対応状況: −−−
|
半人前 登録日: 2019/10/3 居住地: 投稿: 12 |
Re: 規格の編集でエラーが出ます 同じpoint_rateというカラムでも、関係があるとは限らないということですね。
ありがとうございます。 結局いまだ解決できず、情報をかき集めながらデバッグ情報を確認しております。 何度見てもpoint_rateにnullは入っておらず、解決の糸口が見えません。 SQLの知識に疎くて申し訳ないのですが、 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 => 3916, )] ここの部分が気になり、項目数を確認しました。 INTO指定している項目は 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 の19項目、 SELECTで指定している項目も $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 CURRENT_TIMESTAMP $16 CURRENT_TIMESTAMP $17 の19項目なのですが、 PlaceHolderで表示されている数値は17項目です。 point_rateが12番目に該当するのですが、PlaceHolderでの12番目はNULLになっており 本来point_rateが当てはまるところに他の項目から数値を引っ張っているのでは?と思ったのですが、この考え方はおかしいでしょうか。 もし上の仮定が正しい場合、このpoint_rateがどこから数値を引っ張っているのか確認するためには 何処を見ればよいのか、お教えいただけないでしょうか。 長文で申し訳ございません。よろしくお願いいたします。 |
468 |
投稿日時: 2020/5/14 19:11
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 規格の編集でエラーが出ます >本来point_rateが当てはまるところに他の項目から数値を引っ張っているのでは?と思ったのですが、この考え方はおかしいでしょうか。
可能性は無いとは言えませんので、実際にソースを追って確認されてみては如何でしょうか? INSERT文を実行しているのは LC_Page_Admin_Products_ProductClass.php 279行目付近の $objQuery->insert('dtb_products_class', $arrPC); の記述かと思います。 値は$arrPCの配列で渡していると思いますので $arrPCの中がどうなっているか遡って確認してみてください。
|
« 1 (2) |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |