PHP PDO连接到SQLITE db

PHP PDO连接到SQLITE db

问题描述:

所以今天早上我尝试使用PDO连接到SQLite数据库并创建一个表。首先,我创建一个名为db.sqlite的文件,然后创建我的连接并执行create table查询,但execute pdo函数始终返回falsePHP PDO连接到SQLITE db

$pdo = new PDO("sqlite:db.sqlite"); 
$STH = $pdo->prepare(
'CREATE TABLE "users" (
    "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , 
    "full_name" VARCHAR, 
    "description" TEXT, 
    "token" INTEGER); 
    '); 
$STH->execute(); 

因此,我所做其次是从连接删除db.sqlite:memory:替换在内存中创建一个数据库,它完美的作品。

$pdo = new PDO("sqlite::memory:"); 

所以我很困惑,为什么我可以用:memory:,而不是文件,如何解决呢?

下面是我的错误,当我启用异常: enter image description here

+1

'要在磁盘访问数据库的绝对路径追加到DSN prefix.'见 - **绝对**。 –

+0

@u_mulder,绝对路径?就像从根目录直接看,这似乎不太好,考虑到我的应用程序可能会分发,并且人们将有不同的路径,他们将存储应用程序 –

+0

然后写信给开发人员。 –

为什么它不会工作,是因为该文件database.sqlite/var/www/目录内的原因,这给它一个自动RW-RW-R--许可,这意味着你将无法更改文件的结构,我做了两件事情,它的工作,首先我改变了www目录的所有者。

chown -R <your username>:<your username> www/* 

然后改变了项目目录

chmod -R 777 <project>/* 

的许可,它为我工作