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 5.6.26 ですが未だに問題が存在します。