テキストファイルからロードされた挿入コマンドの実行に問題があります。codeIgniter "file"ヘルパーを使用してSQL行をロードしてから、単純なdb-> query(content of my file
)を実行します。問題は、SQLがファイルからロードされるときに、特殊文字が残りの文字列をトリミングすることです。
これが機能する例です
INSERT INTO test(test) VALUES("<p>There is <strong>no special character</strong> in this string</p>");
動作しない例
INSERT INTO test(test) VALUES("<p>this character <em>é</em> is a <strong>special character</strong></p>");
2番目の例では、のみ"<p> this character <em>"
が保存されます。phpMyAdminで同じ行を実行すると正常に動作するため、これは奇妙です。
なぜこれが起こるのか誰もが知っていますか?または私が間違っていることは何ですか?
ありがとう
これが簡単な「再現手順」です。
シンプルなテーブル:
CREATE TABLE `test` (
`test` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
) ENGINE = InnoDB;
以下を含むファイル「application/view /text.txt」:
INSERT INTO test(test) VALUES("<p>this character <em>é</em> is a <strong>special character</strong></p>");
挿入を実行するために使用するコード
$this->load->helper('file');
$loaded_sql = read_file(BASEPATH . "../application/views/test.txt");
$this->db->query($loaded_sql);
私のデータベース構成
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
CI構成
$config['charset'] = 'UTF-8';