phpとsqliteと日本語を含むパス

Windowsにインストールしたphpでsqliteファイルにアクセスする場合、データベースファイル設置場所までのパスに日本語が含まれていると認識されないことがある。

使用するコードはこんな感じ。

try {
    $dbh = new PDO('sqlite:data.db');
} catch(PDOException $e) {
    var_dump($e->getMessage());
    exit;
}

この data.db を設置するパスが c:\path\folder みたいな場合は問題ない。
パスが c:\ぱす\folder のように日本語を含んでいると、上記コードでは以下のようなエラーになる。

SQLSTATE[HY000] [14] unable to open database file

パスを英数文字のみで構成すれば問題ないが、どうしても日本語使いたい場合は以下のようにフルパスで指定すれば大丈夫のようだ。

try {
    $dbh = new PDO('sqlite:c:\ぱす\folder\data.db');
} catch(PDOException $e) {
    var_dump($e->getMessage());
    exit;
}

『phpとsqliteと日本語を含むパス』へのコメント

  1. 名前:匿名 投稿日:2016/12/27(火) 13:44:47 ID:cb4e42790

    助かりました。
    PHP 5.6.26 ですが未だに問題が存在します。