質問 > 管理機能 > 商品詳細に文字入力して登録するとシステムエラーが発生する。 |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
coconem |
投稿日時: 2023/5/15 15:17
対応状況: −−−
|
新米 登録日: 2023/5/15 居住地: 投稿: 3 |
商品詳細に文字入力して登録するとシステムエラーが発生する。 [EC-CUBE] 4.1.0
[レンタルサーバ] CPI [OS] FreeBSD haw1022.secure.ne.jp 12.2-RELEASE-p4 FreeBSD 12.2-RELEASE-p4 GENERIC amd64 [PHP] 7.2.34 [データベース] PostgreSQL 9.5.20 on amd64-portbld-freebsd12.1, compiled by FreeBSD clang version 8.0.1 [WEBサーバ] Apache [ブラウザ] chrome [導入プラグインの有無] Web API、Coupon Plugin for EC-CUBE4、EC-CUBEペイメントLite4、Google Merchant Center、メールマガジンプラグイン、商品レビュー管理プラグイン、おすすめ商品管理プラグイン、関連商品プラグイン、売上集計プラグイン、Securitychecker4、Site Kit プラグイン、クロネコヤマト カード・後払い一体型決済サービス、ゼウス決済プラグイン [カスタマイズの有無] 無し [現象] 商品詳細に文字を入力して登録しようとするとシステムエラーが起こり、登録できない状態です。以下がシステムエラーの該当ログです。原因や復旧方法が分かる方がいらっしゃいましたら、教えていただきたいです。お願いいたします。 [システムエラー該当ログ] [2023-05-15 14:51:38] admin.ERROR [c9301dc0] [9a8cad7] [1] [Eccube\Log\Logger:log:64] - システムエラーが発生しました。 ["An exception occurred while executing 'UPDATE dtb_product SET description_detail = ?, update_date = ? WHERE id = ?' with params [\"\\u30b7\\u30eb\\u30af\\u306e\\(\\u30b7\\u30eb\\u30af\\u306e\\が繰り返されているため省略しています。)n012345678901234567890123456789\", \"2023-05-15 05:51:38+0000\", 24]:\n\nSQLSTATE[22001]: String data, right truncated: 7 ERROR: value too long for type character varying(4000)","/usr/home/haw1022zmari/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractPostgreSQLDriver.php",102,"#0 /usr/home/haw1022zmari/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php(182): Doctrine\\DBAL\\Driver\\AbstractPostgreSQLDriver->convertException('An exception oc...', Object(Doctrine\\DBAL\\Driver\\PDO\\Exception))\n#1 /usr/home/haw1022zmari/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php(159): Doctrine\\DBAL\\DBALException::wrapException(Object(Doctrine\\DBAL\\Driver\\PDO\\PgSQL\\Driver), Object(Doctrine\\DBAL\\Driver\\PDO\\Exception), 'An exception oc...')\n#2 /usr/home/haw1022zmari/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(2212): Doctrine\\DBAL\\DBALException::driverExceptionDuringQuery(Object(Doctrine\\DBAL\\Driver\\PDO\\PgSQL\\Driver), Object(Doctrine\\DBAL\\Driver\\PDO\\Exception), 'UPDATE dtb_prod...', Array)\n#3 /usr/home/haw1022zmari/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1527): Doctrine\\DBAL\\Connection->handleExceptionDuringQuery(Object(Doctrine\\DBAL\\Driver\\PDO\\Exception), 'UPDATE dtb_prod...', Array, Array)\n#4 /usr/home/haw1022zmari/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1473): Doctrine\\DBAL\\Connection->executeStatement('UPDATE dtb_prod...', Array, Array)\n#5 /usr/home/haw1022zmari/html/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php(505): Doctrine\\DBAL\\Connection->executeUpdate('UPDATE dtb_prod...', Array, Array)\n#6 /usr/home/haw1022zmari/html/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php(394): Doctrine\\ORM\\Persisters\\Entity\\BasicEntityPersister->updateTable(Object(Eccube\\Entity\\Product), 'dtb_product', Array, NULL)\n#7 /usr/home/haw1022zmari/html/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(1172): Doctrine\\ORM\\Persisters\\Entity\\BasicEntityPersister->update(Object(Eccube\\Entity\\Product))\n#8 /usr/home/haw1022zmari/html/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(407): Doctrine\\ORM\\UnitOfWork->executeUpdates(Object(Doctrine\\ORM\\Mapping\\ClassMetadata))\n#9 /usr/home/haw1022zmari/html/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php(371): Doctrine\\ORM\\UnitOfWork->commit(NULL)\n#10 /usr/home/haw1022zmari/html/var/cache/prod/ContainerRMtHJxb/EntityManager_9a5be93.php(86): Doctrine\\ORM\\EntityManager->flush(NULL)\n#11 /usr/home/haw1022zmari/html/src/Eccube/Controller/Admin/Product/ProductController.php(496): EntityManager_9a5be93->flush()\n#12 /usr/home/haw1022zmari/html/vendor/symfony/http-kernel/HttpKernel.php(158): Eccube\\Controller\\Admin\\Product\\ProductController->edit(Object(Symfony\\Component\\HttpFoundation\\Request), '24', Object(Symfony\\Bundle\\FrameworkBundle\\Routing\\Router), Object(Eccube\\Util\\CacheUtil))\n#13 /usr/home/haw1022zmari/html/vendor/symfony/http-kernel/HttpKernel.php(80): Symfony\\Component\\HttpKernel\\HttpKernel->handleRaw(Object(Symfony\\Component\\HttpFoundation\\Request), 1)\n#14 /usr/home/haw1022zmari/html/vendor/symfony/http-kernel/Kernel.php(201): Symfony\\Component\\HttpKernel\\HttpKernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#15 /usr/home/haw1022zmari/html/index.php(76): Symfony\\Component\\HttpKernel\\Kernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request))\n#16 {main}"] [POST, /coconemadmin555/product/product/24/edit, 133.206.133.33, https://coconem.com/coconemadmin555/product/product/24/edit, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36] [2023-05-15 14:51:38] php.INFO [c9301dc0] [9a8cad7] [1] [Symfony\Component\ErrorHandler\ErrorHandler:handleError:532] - User Deprecated: The "Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent::getException()" method is deprecated since Symfony 4.4, use "getThrowable()" instead. {"exception":"[object] (ErrorException(code: 0): User Deprecated: The \"Symfony\\Component\\HttpKernel\\Event\\GetResponseForExceptionEvent::getException()\" method is deprecated since Symfony 4.4, use \"getThrowable()\" instead. at /usr/home/haw1022zmari/html/vendor/symfony/http-kernel/Event/GetResponseForExceptionEvent.php:57)"} [POST, /coconemadmin555/product/product/24/edit, 133.206.133.33, https://coconem.com/coconemadmin555/product/product/24/edit, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36] [2023-05-15 14:51:38] admin.INFO [c9301dc0] [9a8cad7] [1] [Eccube\Log\Logger:log:64] - 商品登録開始 ["24"] [POST, /coconemadmin555/product/product/24/edit, 133.206.133.33, https://coconem.com/coconemadmin555/product/product/24/edit, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36] |
yuh |
投稿日時: 2023/5/15 15:29
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1850 |
Re: 商品詳細に文字入力して登録するとシステムエラーが発生する。
なので、文字列の長さが4000を超えている事が原因でエラーが発生しています。 カラム自体のデータタイプを変更するか文字列の長さを短くすることで対応できるかと思います。
|
coconem |
投稿日時: 2023/5/15 16:38
対応状況: −−−
|
新米 登録日: 2023/5/15 居住地: 投稿: 3 |
Re: 商品詳細に文字入力して登録するとシステムエラーが発生する。 yuh様
教えていただきありがとうございます。 以前は以下のように、100,000文字まで商品詳細に入力できるようコードを書き換え、実際に入力できていました。 new Assert\Length(['max' => $this->eccubeConfig['eccube_ltext_len']]), とある部分を new Assert\Length(['max' => 100000]), その後しばらくして、今のようにシステムエラーが起こる状態になりました。 コードは以前のままなのですが、4000文字を超えるとエラーが起きるようになった原因など分かりますでしょうか? |
mcontact |
投稿日時: 2023/5/15 18:21
対応状況: −−−
|
神 登録日: 2022/1/22 居住地: 投稿: 1465 |
Re: 商品詳細に文字入力して登録するとシステムエラーが発生する。 引用:
ERROR: value too long for type character varying(4000) 上記のエラーは利用しているデータベースの、 dtb_productテーブルdescription_detailカラムに対して登録しようとしたデータが、description_detailカラムに対して4000文字の制限を超えていますというエラーです。 引用: 以前は以下のように、100,000文字まで商品詳細に入力できるようコードを書き換え、実際に入力できていました。 こちらのカスタマイズは、商品詳細の入力制限チェックを100000文字までの制限にしているだけなのでデータベース上の登録できる制限を増やしているコードではありません。
|
coconem |
投稿日時: 2023/5/16 10:27
対応状況: −−−
|
新米 登録日: 2023/5/15 居住地: 投稿: 3 |
Re: 商品詳細に文字入力して登録するとシステムエラーが発生する。 mcontact様
詳細に教えていただきありがとうございます。 現状の問題を理解することができました。 以下の流れで解決できるのでしょうか? Productエンティティ内で定義してる @ORM\Column(name="description_detail", type="string", length=4000, nullable=true) のlengthの値変更。 データベースに反映 bin/console doctrine:schema:update --dump-sql bin/console doctrine:schema:update --dump-sql --force |
mcontact |
投稿日時: 2023/5/16 12:22
対応状況: −−−
|
神 登録日: 2022/1/22 居住地: 投稿: 1465 |
Re: 商品詳細に文字入力して登録するとシステムエラーが発生する。 今回は、既存テーブルと既存カラムの変更の様なのでこちらを参考に
https://noveblo.com/eccube-customize-17/
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |