home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

PHP/ADODB/アンダースコア("_")を含むDB名で嵌った件 (v1)

PHP/ADODB/アンダースコア("_")を含むDB名で嵌った件 (v1)

PHP / ADODB / アンダースコア("_")を含むDB名で嵌った件 (v1)
id: 35 所有者: msakamoto-sf    作成日: 2006-03-11 08:02:46
カテゴリ: PHP 

adodb.inc.phpの3670行付近、DSN形式をparse_url()で分解している箇所で、少なくともバージョン4.67と4.70の間で次のような違いがありました。

ADOdb 4.67:

if (strpos($db,'://')) {
    $origdsn = $db;
    $dsna = @parse_url($db); 

ADOdb 4.70:

if (strpos($db,'://')) 
    $origdsn = $db;
    $db = str_replace('_','%95',$db);
    $dsna = @parse_url($db);

・・・多分、parse_url()の仕様上そうなったのかもしれません。配列から値を取り出す場合は、rawurldecode()しています。

が。
http://phplens.com/lens/lensforum/msgs.php?id=14499&x=1
に有るように、"%95"はrawurldecode()しても戻らないんですよ。

→4.71では修正されたようです。というわけで、アンダースコアの問題で嵌っている方は最新版にしませう。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2008-12-16 08:04:31
md5:e4d6e0263b2c804f0818edda2f238bf0
sha1:f929ea13365857af8493ec67caa072989fffd02f
コメント
コメントを投稿するにはログインして下さい。