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

この記事は最終更新日から9年以上経過しています。
内容が古い可能性がありますのでご注意ください。

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;
}

コメント

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