PDO连接到不同服务器上的SQLite服务器

时间:2013-01-23 11:16:46

标签: php sqlite pdo

我有一个非常简单的SQLite数据库,我需要从另一台服务器读取/写入。

假设数据库存储在此处:http://www.abc.com/data/data.sqlite 我正在使用PHP从http://www.xyz.com

访问它

所以我的第一次尝试如下:

$dbpath = "http://www.abc.com/data/data.sqlite";
$dbconn = "sqlite:$dbpath";
$db = new PDO($dbconn)

不好,我得到以下内容:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [14] unable to open database file'.........PDO->__construct('sqlite:http://w...') #1 {main} thrown

如果尝试将数据库复制到我正在访问的同一台服务器上:

$dbpath = "http://www.xyz.com/data/data.sqlite";
$dbconn = "sqlite:$dbpath";
$db = new PDO($dbconn)

我收到同样的消息。 只有当我在同一台服务器上给它一个相对路径时才会这样:

$dbpath = "../data/data.sqlite";

它确实有效。 我知道数据库URL和数据库本身是正确的。 那么访问跨服务器有限制吗?有谁知道解决这个问题?

非常感谢。

1 个答案:

答案 0 :(得分:2)

没有'SQLite服务器'这样的东西。它仅以文件的形式存在 但HTTP协议中没有文件,只有URI 所以,这是必不可少的。

为了能够进行远程通话,您有3个选择

  1. 仅作为笑话:在每个SELECT查询之前在本地下载文件,并在更新后将其上传回来
  2. 建立一些代理脚本,接收查询并返回json。
  3. 让自己成为真正的数据库服务器。
  4. 或者只是更改项目架构以消除远程访问的需要。