EC-CUBEでMySQLデータベースのデータ取得で文字化けするときの対処法
EC-CUBEのデータベースは、標準ではPostgreSQLで、MySQLにも対応しています。
PostgreSQLとMySQLの両方で動作するようにコードが書かれているため、どちらか一方に特化した書き方をしているコードと比べるとSQL文の効率が悪くなっています。
たとえば値を挿入するときのIDには、AUTO_INCREMENTは使用せず xxxx_id_seqというテーブルにsequenceで最後の値(最大の値)を保存するようになっています。
またMySQLは標準ではないためか、あまりきれいに動作しません。
別のサーバに移行したりするときに、文字化けすることがあります。
このときには次のコードを記述することで、UTF-8に文字コードを指定することができます。
/data/class_extends/SC_Query_Ex.php
class SC_Query_Ex extends SC_Query { function SC_Query_Ex($dsn = "", $force_run = false, $new = false) { $this->SC_Query($dsn, $force_run, $new); if (!PEAR::isError($this->conn)) { if(DB_TYPE == 'mysql'){ $this->conn->query('SET NAMES utf8'); } } } }
関連記事
- PostgreSQLでERROR: duplicate key value violates unique constraint "hoge_pkey" DETAIL: Key (id)=(10) already exists.と出る場合
- PostgreSQLで自動採番をするシーケンス(sequence)とは【AUTO INCREMENT】
- EC-CUBE2系で商品を大量にカートに入れると注文情報が抜けたりカートが消えたりする
- EC-CUBEのダウンロードページ(過去のバージョン)
- 新規ページを追加するとSC_Utils_Ex::sfChangeCheckBox()のエラーが出るときの対処法
- PostgreSQLからMySQL、MySQLからPostgreSQLの変更
- EC-CUBEのサーバ移行の方法
- EC-CUBEのバックアップ機能とリストア
- ページごとのスタイルシート、JavaScriptを指定する方法
- テンプレートの編集
- カテゴリ名など文字列を丸めると文字化けする EC-CUBEのバグ
- 基本的な特徴
- DB設計を見直してEC-CUBEを高速化する
- 郵便番号データの登録/更新
- インストール 初期設定
- EC-CUBE
- MySQL MariaDB
- Ruby on Railsのマイグレーションの型とMySQLの型の対応表
- データベースを定時バックアップする方法(毎日バックアップする処理)
- WordPressのインストール
- yumのius(iuscommunity.org)でエラーが出る場合
- オフセットの後半になると急に遅くなる MySQLの高速化
- コマンドやphpMyAdminで複数のデータベースに接続できるユーザーを作成する方法
- 複数のデータベースを切り替える方法(別データベースを使用する)
- MySQL(MariaDB)をユーザー情報を含めてすべて移行する方法
- utf8_general_ci と utf8_unicode_ci の違い
- OpenPNE3のサーバ移行の方法
- MySQLの処理を停止させる方法
- レコード挿入時の #1364 - Field doesn't have a default value
- Zend_DBのSELECTメソッドのまとめ
- iusリポジトリで公開されているパッケージの一覧
スポンサーリンク