PDO SQLite:无法打开数据库文件

时间:2014-02-27 09:20:36

标签: php symfony pdo sqlite doctrine-orm

我在Symfony中创建了一个项目并遇到了bug #57785。显然是一个错误,仍然没有解决。

谁知道解决这个错误的方法?

我会解释问题

我创建了一个便携式应用。这样的应用程序,用户通常会安装在DesktopMy Documents

俄罗斯的坏道路径示例:

C:\Documents and Settings\Администратор\Рабочий стол\
C:\Documents and Settings\Администратор\Мои документы\

我可以限制用户在这样的目录中安装应用程序,但这是不好的做法。

在程序包dsn中更改程序集doctrine/dbal,但这是一个非常艰难的决定并不总是有效:

Doctrine\DBAL\Driver\PDOSqlite\Driver::_constructPdoDsn(array $params)
{
    $dsn = 'sqlite:';
    if (isset($params['path'])) {
        $dsn .= iconv('cp1251', 'utf-8', $params['path']);
    } else if (isset($params['memory'])) {
        $dsn .= ':memory:';
    }

    return $dsn;
}

在更改编码后,必须获取Doctrine数据库驱动程序并替换数据库文件的路径。

$conn = $this->container->get('doctrine')->getConnection();
$new_path = iconv('cp1251', 'utf-8', $conn->getParams()['path']);
// further necessary change connection params

1 个答案:

答案 0 :(得分:2)

我知道。只是不要在服务器上使用花哨的目录名称。

/var/www/project/db/

任何软件都是理智的,可读的