Jus*_* T. 11 php windows sqlite pdo path
[ante-scriptum:这是一个自我回答的问题,你不需要打扰回答]
我遇到了一个奇怪的配置问题,没有在特定的PHP.net页面或StackOverflow 上的任何地方记录.
在Windows上打开现有的sqlite数据库时,同样的错误仍然显示:
SQLSTATE[HY000] [14] Unable To Open Database File
虽然执行的代码是从手册中复制/粘贴的:
<?php
/* Connect to an ODBC database using driver invocation */
$dsn = 'sqlite:/full/path/to/db';
$user = 'dbuser';
$password = 'dbpass';
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
?>
Run Code Online (Sandbox Code Playgroud)
我无法打开这个数据库,因为我在谷歌搜索时尝试了各种各样的DSN:
$dsn = 'sqlite:/c:\\full\\path\\to\\db'; // --FAILED--
$dsn = 'sqlite://c:/full/path/to/db'; // --FAILED--
Jus*_* T. 21
请注意DSN中的简单斜杠sqlite:/
?放下吧!
像这样写你的DSN:
sqlite:name.db
.
这适用于相对路径和绝对路径,因此:
$dsn = 'sqlite:c:\full\path\to\name.db'; // --WORKS--
$dsn = 'sqlite:..\data\name.db'; // --WORKS--
$dsn = 'sqlite:name.db'; // --WORKS--
希望将来能为您节省一些时间!