バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

プラグイン > バグ報告・利用に関する質問 > スライダープラグインの改造で INSERT INTO 〜 SELECT 〜 というエラー

バグ報告・利用に関する質問

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
h_tanaka
投稿日時: 2017/8/28 20:09
対応状況: 解決済
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1646
スライダープラグインの改造で INSERT INTO 〜 SELECT 〜 というエラー
「イメージスライダーおきにめすままプラグイン」に表示期間を設定しようとしているのですが、下記のエラーが発生してしまいます。
通常は、INSERT INTO 〜 VALUES 〜 というSQL構文になると思うのですが、デバッグログを見るとなぜか INSERT INTO 〜 SELECT 〜 となってしまっています。
このエラーの原因または解決方法わかりますでしょうか?

行ったことは、まずはプラグインのインストーラーを SQL Server 用に変更しました。
・CREATE TABLE の text を varchar(8000) に変更
・シーケンスの作成をスキップ
これにより、インストールは成功し、この時点ではスライダー管理でスライダー画像の設定はできていました。

その後、表示期間の設定のために テーブルにカラムを追加し、保存処理を実装しました。
ここで下記のエラーが発生するようになりました。

■プラグイン
https://www.ec-cube.net/products/detail.php?product_id=932

■環境
EC-CUBE 2.13.2
サーバーOS Linux debian 3.2.0-4-686-pae #1 SMP Debian 3.2.81-1 i686
DBサーバー Microsoft SQL
WEBサーバー nginx/1.2.1
PHP 5.4.45-0+deb7u8

■デバッグログメッセージ
▼▼▼ デバッグ情報ここから ▼▼▼
http://xxxxx/admin/contents/plg_SliderAsYouLike_Slider.php?

SERVER_ADDR: 172.16.99.128
REMOTE_ADDR: 172.16.99.1
USER_AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36

Fatal error(E_USER_ERROR): DB処理でエラーが発生しました。
SQL: [INSERT INTO plg_sliderasyoulike_img(img_id,max_width1,max_height1,max_width2,max_height2,max_width3,max_height3,group_name,call_key,idx,alt,link_url,link_method,ext1,ext2,ext3,ext4,ext5,creator_id,create_date,update_date,slider_image) SELECT ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,GETDATE(),GETDATE(),?]
MDB2 Error: null value violates not-null constraint
_doQuery: [Error message: Could not execute statement]
[Last executed query: INSERT INTO plg_sliderasyoulike_img(img_id,max_width1,max_height1,max_width2,max_height2,max_width3,max_height3,group_name,call_key,idx,alt,link_url,link_method,ext1,ext2,ext3,ext4,ext5,creator_id,create_date,update_date,slider_image) SELECT 34,NULL,NULL,NULL,NULL,NULL,NULL,'test34','test34',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,GETDATE(),GETDATE(),NULL]
[Native code: 515]
▲▲▲ デバッグ情報ここまで ▲▲▲

■以下、変更点です。
SliderAsYouLike.php(174行目)

                default:    // SQL Server
                    $create_img_table = <<< __EOS__
                        CREATE TABLE plg_sliderasyoulike_img (
                            img_id integer NOT NULL,
                            max_width1 integer,
                            max_height1 integer,
                            max_width2 integer,
                            max_height2 integer,
                            max_width3 integer,
                            max_height3 integer,
                            alt varchar(8000),
                            group_name varchar(8000),
                            call_key varchar(8000),
                            idx integer,
                            link_url varchar(8000),
                            link_method varchar(8000),
                            ext1 varchar(8000),
                            ext2 varchar(8000),
                            ext3 varchar(8000),
                            ext4 varchar(8000),
                            ext5 varchar(8000),
                            from_date timestamp NOT NULL,
                            to_date timestamp NOT NULL,
                            creator_id integer NOT NULL,
                            create_date timestamp NOT NULL,
                            update_date timestamp NOT NULL,
                            slider_image varchar(8000),
                            PRIMARY KEY (img_id)
                        );
__EOS__;
                    $create_slider_table = <<<__EOS__
                        CREATE TABLE plg_sliderasyoulike_slider (
                            call_key varchar(8000),
                            theme varchar(8000),
                            effect varchar(8000),
                            anim_speed integer,
                            pause_time integer,
                            creator_id integer NOT NULL,
                            create_date timestamp NOT NULL,
                            update_date timestamp NOT NULL
                        );
__EOS__;
                    break;


SliderAsYouLike.php(336行目)

        self::$arrFields['copy_016'] = array(0, array('from_date'));
        self::$arrFields['copy_017'] = array(0, array('to_date'));


plg_SliderAsYouLike_LC_Page_Admin_Contents_Slider.php(311行目)

        // 表示期間
        $objErr->doFunc(array('開始', 'displayfromyear', 'displayfrommonth', 'displayfromday'), array('CHECK_DATE'));
        $objErr->doFunc(array('終了', 'displaytoyear', 'displaytomonth', 'displaytoday'), array('CHECK_DATE'));
        $objErr->doFunc(array('開始', '終了', 'displayfromyear', 'displayfrommonth', 'displayfromday', 'displaytoyear', 'displaytomonth', 'displaytoday'), array('CHECK_SET_TERM'));


plg_SliderAsYouLike_LC_Page_Admin_Contents_Slider.php(376行目)

        $objFormParam->addParam('表示期間(開始年)', 'displayfromyear', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'));
        $objFormParam->addParam('表示期間(開始月)', 'displayfrommonth', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'));
        $objFormParam->addParam('表示期間(開始日)', 'displayfromday', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'));
        $objFormParam->addParam('表示期間(終了年)', 'displaytoyear', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'));
        $objFormParam->addParam('表示期間(終了月)', 'displaytomonth', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'));
        $objFormParam->addParam('表示期間(終了日)', 'displaytoday', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'));


plg_SliderAsYouLike_LC_Page_Admin_Contents_Slider.php(433行目)

        // 表示期間をタイムスタンプに変換
        $sqlval['from_date'] = SC_Utils_Ex::sfGetTimestamp($arrPost['displayfromyear'], $arrPost['displayfrommonth'], $arrPost['displayfromday']);
        $sqlval['to_date'] = SC_Utils_Ex::sfGetTimestamp($arrPost['displaytoyear'], $arrPost['displaytomonth'], $arrPost['displaytoday']);




----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

h_tanaka
投稿日時: 2017/8/28 20:51
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1646
Re: スライダープラグインの改造で INSERT INTO 〜 SELECT 〜 というエラー
すみません、自己解決しました。
デバッグログをよく見たら、null value violates not-null constraint と記載されていました。
from_date, to_date のNULL属性を、NOT NULL から NULL に変更することで保存できるようになりました。


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

yuh
投稿日時: 2017/8/29 12:07
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: スライダープラグインの改造で INSERT INTO 〜 SELECT 〜 というエラー
通常はINSERT INTO 〜 VALUES 〜だけではなく、INSERT INTO 〜 SELECT 〜も使います。


----------------


http://ec-lab.net/

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,835名です
総投稿数は109,984件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1291
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

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