バージョン選択

フォーラム

メニュー

オンライン状況

70 人のユーザが現在オンラインです。 (51 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 70
もっと...

サイト内検索

質問 > フロント機能 > dtb_orderのorder_idを10桁以上でも挿入できるように設定したいです。

フロント機能

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
bio
投稿日時: 2019/8/20 15:59
対応状況: 解決済
常連
登録日: 2013/3/13
居住地:
投稿: 67
Re: dtb_orderのorder_idを10桁以上でも挿入できるように設定したいです。
red様

ご教授により解決いたしました。本当にありがとうございます。

まさしく以下のご推察の通りでございました。

>dtb_order_temp.order_id には、いくつが入っていますか?
>(ここがintだと切り捨てられて最大値が入る気がするので、ここが原因だと思うのですが?)

他のorder_idを使用しているテーブルのorder_idのデータ型を変更していなかったために起きていた現象でございました。実際に取り組んでいた当事者でしたが、まったく気がつかないところをお教え頂きまして感謝の限りでございます。

*$this->arrForm['order_id'] = $objPurchase->getNextOrderID();は多少カスタマイズをしており、話がわからなくなると思い言及を避けておりました。長々と説明不足などもあり申し訳ございませんでした。

お時間を頂きまして本当に感謝致します。
red
投稿日時: 2019/8/20 9:27
対応状況: −−−
登録日: 2010/2/15
居住地: 東京都
投稿: 1342
Re: dtb_orderのorder_idを10桁以上でも挿入できるように設定したいです。
はい
dtb_order.order_id はbigintになっているのがわかりました。



$this->arrForm['order_id'] = $objPurchase->getNextOrderID();

ここで、返ってきている値は、いくつですか?



dtb_order_temp.order_id には、いくつが入っていますか?
(ここがintだと切り捨てられて最大値が入る気がするので、ここが原因だと思うのですが?)


----------------
EC-CUBEのカスタマイズ、トラブル解決承ります
お気軽にお問い合わせ下さい
https://www.ec-cube.net/integrate/partner/partner.php?partner_id=690

EC-CUBE4のプラグイントラブル、調査します

bio
投稿日時: 2019/8/19 23:47
対応状況: −−−
常連
登録日: 2013/3/13
居住地:
投稿: 67
Re: dtb_orderのorder_idを10桁以上でも挿入できるように設定したいです。
red様

お時間を頂きまして本当に感謝いたします。

バージョンは2.12.5です。

申し訳ございません。11桁以上というよりは、厳密には2147483647以上の整数(例:1566225446510)を挿入しようとすると、int型、あるいはbigint型のカラムに格納できる最大値の整数が2147483647であるためだと思われますが、2147483647がdtb_orderのorder_idに挿入されます。

そして次のオーダー(2147483647以上の整数)を挿入しようとすると、上記と同じ理由で、再度2147483647を挿入しようとして以下の様なエラーが発生する様でございます。

しかしながら、他のソースからこのdtb_orderのorder_idにデータを挿入する際にはこの2147483647以上の整数(例:1566225446510)が挿入されます。

MDB2 Error: constraint violation
_doQuery: [Error message: Could not execute statement]
[Last executed query: EXECUTE mdb2_statement_mysql_45834afbf3487650c249301e814e45c295538c6d9d USING @0, @1, @2, @3, @4, @5, @6, @7, @8, @9, @10]
[Native code: 1062]
[Native message: Duplicate entry '2147483647' for key 'PRIMARY']
on [/var/www/vhosts/xxxxxxx.com/httpdocs/data/class/SC_Query.php(1089)] from 14.9.81.129
customer_id = 456
/var/www/vhosts/xxxxxxx.com/httpdocs/shopping/confirm.php(34): LC_Page_Shopping_Confirm_Ex->process
/var/www/vhosts/xxxxxxx.com/httpdocs/data/class_extends/page_extends/shopping/LC_Page_Shopping_Confirm_Ex.php(56): LC_Page_Shopping_Confirm->process
/var/www/vhosts/xxxxxxx.com/httpdocs/data/class/pages/shopping/LC_Page_Shopping_Confirm.php(42): LC_Page_Shopping_Confirm->action
/var/www/vhosts/xxxxxxx.com/httpdocs/data/class/pages/shopping/LC_Page_Shopping_Confirm.php(218): SC_Helper_Purchase->completeOrder
/var/www/vhosts/xxxxxxx.com/httpdocs/data/class/helper/SC_Helper_Purchase.php(81): SC_Helper_Purchase->registerOrderComplete
/var/www/vhosts/xxxxxxx.com/httpdocs/data/class/helper/SC_Helper_Purchase.php(896): SC_Helper_Purchase->registerOrderDetail
/var/www/vhosts/xxxxxxx.com/httpdocs/data/class/helper/SC_Helper_Purchase.php(990): SC_Query->insert
/var/www/vhosts/xxxxxxx.com/httpdocs/data/class/SC_Query.php(602): SC_Query->query
/var/www/vhosts/xxxxxxx.com/httpdocs/data/class/SC_Query.php(896): SC_Query->execute
/var/www/vhosts/xxxxxxx.com/httpdocs/data/class/SC_Query.php(1052): SC_Query->error
/var/www/vhosts/xxxxxxx.com/httpdocs/data/class/SC_Query.php(1089): trigger_error

red
投稿日時: 2019/8/19 16:08
対応状況: −−−
登録日: 2010/2/15
居住地: 東京都
投稿: 1342
Re: dtb_orderのorder_idを10桁以上でも挿入できるように設定したいです。
2.13.5で見る限り制約などないかと思います。

詳しいバージョンがわからないのでアドバイスが難しいですが、

・桁数が11桁以上の場合、どうなるのでしょうか?

LC_Page_Shopping_Confirm に 以下のようなコードが有ると思いますが、ここで11桁以上の値は返ってきていますか?
$this->arrForm['order_id'] = $objPurchase->getNextOrderID();


----------------
EC-CUBEのカスタマイズ、トラブル解決承ります
お気軽にお問い合わせ下さい
https://www.ec-cube.net/integrate/partner/partner.php?partner_id=690

EC-CUBE4のプラグイントラブル、調査します

bio
投稿日時: 2019/8/19 15:50
対応状況: −−−
常連
登録日: 2013/3/13
居住地:
投稿: 67
Re: dtb_orderのorder_idを10桁以上でも挿入できるように設定したいです。
red様

お時間を頂きまして感謝いたします。

dtb_order, dtb_order_order_id_seq, dtb_order_detail, dtb_order_detail_order_detail_id_seq, そしてdtb_order_tempの調整は事前にしておりました。

別のソースからdtb_orderにデータを挿入すると、order_idの桁数が11桁以上でも挿入されます。

ですから、LC_Page_Shopping_Confirm.php、SC_Helper_Purchase.php関連のファイル、あるいはそれに関連する設定にて桁数、あるいはサイズを制約する箇所があるのではないかと考え試しておりますが、見つけることができません。
red
投稿日時: 2019/8/19 10:59
対応状況: −−−
登録日: 2010/2/15
居住地: 東京都
投稿: 1342
Re: dtb_orderのorder_idを10桁以上でも挿入できるように設定したいです。
dtb_order_temp も直しましたか?


----------------
EC-CUBEのカスタマイズ、トラブル解決承ります
お気軽にお問い合わせ下さい
https://www.ec-cube.net/integrate/partner/partner.php?partner_id=690

EC-CUBE4のプラグイントラブル、調査します

bio
投稿日時: 2019/8/19 10:49
対応状況: −−−
常連
登録日: 2013/3/13
居住地:
投稿: 67
Re: dtb_orderのorder_idを10桁以上でも挿入できるように設定したいです。
red様

お時間を頂きまして本当に感謝いたします。

ここでのdtb_order_order_id_seqの設定には問題がなく、他の何らかの設定により、11桁以上のorder_idがdtb_orderに挿入できない設定になっていると思われます。

いろいろと試しておりますが、分かりません。
red
投稿日時: 2019/8/19 9:03
対応状況: −−−
登録日: 2010/2/15
居住地: 東京都
投稿: 1342
Re: dtb_orderのorder_idを10桁以上でも挿入できるように設定したいです。
dtb_order_order_id_seq も修正が必要なのではないでしょうか


----------------
EC-CUBEのカスタマイズ、トラブル解決承ります
お気軽にお問い合わせ下さい
https://www.ec-cube.net/integrate/partner/partner.php?partner_id=690

EC-CUBE4のプラグイントラブル、調査します

bio
投稿日時: 2019/8/17 22:03
対応状況: −−−
常連
登録日: 2013/3/13
居住地:
投稿: 67
Re: dtb_orderのorder_idを10桁以上でも挿入できるように設定したいです。
red様

お時間を頂きまして感謝致します。

order_idのデータ型をbigintに変更することにより、10桁の整数をdtb_orderのorder_idに挿入することができました。

ただし、11桁以上は挿入されません。

別のソースからもこのdtb_orderにデータを挿入しておりますが、その場合、order_idの桁数は何桁でも問題なく挿入される様です。

ですので、eccube 2系のデフォルトのLC_Page_Shopping_Confirm.php、SC_Helper_Purchase.phpを使用して挿入する際に、11桁以上であれば、挿入できない何らかの制約があるのだろうと考えております。

参考にしたリンク内でも記載されておりますが、bit数が影響しているのでしょうか?

何かお分かりになりますでしょうか?
red
投稿日時: 2019/8/16 18:23
対応状況: −−−
登録日: 2010/2/15
居住地: 東京都
投稿: 1342
Re: dtb_orderのorder_idを10桁以上でも挿入できるように設定したいです。
bigint型に変える必要があるのではないでしょうか


----------------
EC-CUBEのカスタマイズ、トラブル解決承ります
お気軽にお問い合わせ下さい
https://www.ec-cube.net/integrate/partner/partner.php?partner_id=690

EC-CUBE4のプラグイントラブル、調査します

(1) 2 »
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

ec-cube.co

統計情報

総メンバー数は49,414名です
総投稿数は93,180件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
1967
4
468
1818
5
yuh
1602
6
red
1342
7
umebius
1296
8
fukap
907
9
h_tanaka
907
10
tsuji
856
11
shutta
835
12 ramrun 789
13
tao_s
774
14 karin 656
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.