私はemysqlエンコーディングに関して正しい答えhereを持っている質問を書いています。別の質問を特定 答え...Erlang Emysqlは、準備されたものと通常のもののエンコーディングの違いを問合せしています。
私はiPhoneがデータベースに絵文字保存しようとしている...
私が行うと:
Query = io_lib:format("UPDATE Users SET c=\"~s\" WHERE id=~B", [C, Id]),
emysql:execute(mydb, Query).
すべてが正常に動作します...
しかしで:
emysql:prepare(update_c, <<"UPDATE Users SET c=? WHERE id=?">>),
emysql:execute(mydb, update_c, [C, Id]).
私は文字化けを取得しています。 CORRECT TERMに
を使用するようにEDITED 私はと接続しています:
emysql:add_pool(my_db, 3, "login", "password", "db.mydomain.com", 3306, "MyTable", latin1)
私は使用を行う場合は残念ながら、私は、理由のデータベースと保存された絵文字の使用以前のソフトウェアのそのようにUTF8を使用することはできませんutf8の場合、新しいシステムでは動作しますが、古いシステムでは挿入されない行では動作しません。
EDIT:
私は本当にプリペアドステートメントを使用したい、効果的にSQLインジェクションを防止するであろう。
「門番」を受け取ることができますか、たとえば間に合わせのエラーがありますか? –
gibberish = Mojibake、はい...しかし準備されたステートメントでのみ、私は準備ができていないステートメントをmysql_util:encode()を使って使用していますが、注入はできませんが、ステートメント。 – TheSquad