mysql:14134
From: goungoun <goungoun <gounx2@xxxxxxxxxx>>
Date: Tue, 24 Jul 2007 22:07:11 +0900
Subject: [mysql 14134] Re: MyODBC 接続による 0x5c の問題は最新ドライバで解決済み?
こんにちは。 On Tue, 24 Jul 2007 17:15:48 +0900 (JST) <ska_king2005@xxxxxxxxxx> wrote: > 過去ログに、MyODBCで0x5cの文字が存在すると「\」が付加さ > れ、 > 末尾に存在すると「'」がエスケープされてしまい、 > シンタックスエラー等を引き起こす問題がありました。 > 実際にMyODBC3.51.12を使用し、クエリログを採取した結果、 > 問題となっているクエリが出力されていました。 > > なにげなく、MyODBC3.51.17に切り替えて実行した結果、 > クエリログにも0x5c文字がエスケープされずに出力され、 > クエリも問題なく実行できました。 # 見られてるような気もしますが。。。 http://www.mysql.gr.jp/mysqlml/mysql/msg/13924 の頃調べた限りでは、 mysql-connector-odbc-3.51.14-win32.msi でも正常に動作してました。 # クライアントのmy.cnfで # default-character-set=cp932 # してますか? # 詳しくは上記のUrl先やその周辺を探ってみてください。 > > チェンジログを一通り読んでみた結果、この辺の修正で直った > ように > 見えるのですが、何か情報をお持ちの方はいらっしゃいますで > しょうか? > > #E.3.13. Changes in Connector/ODBC 3.51.17 (14 July 2007) > より引用 > # > #The driver was using mysql_odbc_escape_string(), > #which does not handle the NO_BACKSLASH_ESCAPES SQL mode. > #Now it uses mysql_real_escape_string(), which does. > (Bug#9498) > これは、 5.0.3以降でサーバ側に NO_BACKSLASH_ESCAPES というのが追加 されたが、MyODBC側はこれに対応していなかったので修正した ってことでは? したがって、cp932の0x5c問題とは無関係だと思いますよ。 ただ、間接的には直ったように見えるような気がします。 というのも、NO_BACKSLASH_ESCAPESは、 エスケープを無効にするオプションのようなので、 結果的に解決しているように見えるのではないかな? もっとも、NO_BACKSLASH_ESCAPESしていると 副作用(?)として、改行を含む文字列をinsertしようと "aaa\nbbb" なんて指定しても、期待通りの 動作はしなくなるんでしょうね。 -- goungoun <gounx2@xxxxxxxxxx> http://goungoun.dip.jp/app/
14132 2007-07-24 17:15 [<ska_king2005@xxxxxx] MyODBC 接続による 0x5c の問題は最新ドライバで解決済み? 14133 2007-07-24 20:40 ┣[<ska_king2005@xxxxxx] -> 14134 2007-07-24 22:07 ┗[goungoun <gounx2@xxx] 14135 2007-07-25 10:42 ┗[<ska_king2005@xxxxxx]