Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

キーワード検索において、SQLエラーが発生する。 #2051

Closed
t-nagahashi opened this issue Jan 25, 2017 · 8 comments
Closed
Milestone

Comments

@t-nagahashi
Copy link
Contributor

環境依存の問題のようです。
情報元ページ:http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=18435&forum=2&post_id=79797#forumpost79797

@izayoi256
Copy link
Contributor

私が作業した #1797 によるものですね…。
半角全角英数字の検索対応のためにCOLLATE utf8_unicode_ciにしてあります。

@t-nagahashi
Copy link
Contributor Author

@izayoi256 さん
修正方法はありますでしょうか?

@izayoi256
Copy link
Contributor

izayoi256 commented Jan 25, 2017

@t-nagahashi
調査が必要ですが、現在のリソースの都合上すぐには対応できない状態です。カゴヤ環境が手元にないため環境の再現が必要なことも踏まえると、2月に入ってしまう見込みです。
緊急度高めの判断、かつすぐに分かる方がいらっしゃらなければ、一旦当該機能を無効化(COLLATE utf8_unicode_ciを削除)していただいた方がいいかもしれません。申し訳ありません。

@trebla-on
Copy link
Contributor

trebla-on commented Jan 27, 2017

エラーなって理由は以下のファイルに
https://github.com/EC-CUBE/ec-cube/blob/master/src/Eccube/Doctrine/ORM/Query/Normalize.php#L55
COLLATE utf8_unicode_ci追加になったから

カラムタイプテキスト場合はCharsetとCollation設定できますが設定されてない場合はグロバールのCharsetになります。
こちらの問題はカラムタイプはテキストではないと思います、blobなってるかもしれません、
それを確認のために以下のSQLクエリー結果を確認したいです
SHOW CREATE TABLE dtb_product;

多分dtb_product.nameかdtb_product.search_wordカラムはblobなってると思います

@trebla-on
Copy link
Contributor

trebla-on commented Jan 27, 2017

対応は何個かあります
■ カラムのCharsetはutf8の時だけ{COLLATE utf8_unicode_ci}を使うことができます。
 毎回カラムは正しかどうかチェックよくないですので例外あった時エラーパースして対応方法書くなか?
備考:ソースCOLLATE入れてる理由はISSUE対応のためにもしかして別の対応方法できるかもしれません
■ SELECTの時COLLATE使わない方が、インストールの時MySQL設定は確認が必要

⚠️現在は管理画面で(システム情報)PHP情報確認できますがMySQL場合はバージョンのみ表示します
   対応しやすくためにMySQL情報追加したほうがいいかもしれません
 例えば:

Variable_name Value
sql_mode STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
collation_connection utf8_general_ci
collation_database utf8_general_ci
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
collation_server latin1_swedish_ci

@tao-s
Copy link
Contributor

tao-s commented Feb 1, 2017

すいません、コード確認してないんですが最初のインストール時にカラムの照合順序を指定していないって事ですか?

@chihiro-adachi
Copy link
Contributor

@tao-s
インストール時は以下が指定されているはずですなのですが、環境によってはうまく行かないのかも知れません。
https://github.com/EC-CUBE/ec-cube/blob/master/src/Eccube/Resource/config/database.yml.dist#L9

@ryo-endo
Copy link
Contributor

#2092 の対応で、該当環境(カゴヤ様)でも、問題発生しないことを確認しました。
master反映したのでCLOSEします。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants