gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 01:04:57 29 4
gpt4 key购买 nike

我有一个非常简单的 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 和数据库本身是正确的。那么跨服务器访问有限制吗?有谁知道如何解决这个问题吗?

非常感谢。

最佳答案

不存在“SQLite 服务器”这样的东西。它仅以文件的形式存在。
但HTTP协议(protocol)中没有文件,只有URI。
因此,这是本质上的不兼容性。

为了能够进行远程调用,您有 3 个选择

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

关于php - PDO 连接到不同服务器上的 SQLite 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14478389/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com