PHP PDO连接到SQLITE db
问题描述:
所以今天早上我尝试使用PDO连接到SQLite数据库并创建一个表。首先,我创建一个名为db.sqlite的文件,然后创建我的连接并执行create table
查询,但execute
pdo函数始终返回false
。PHP 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:
,而不是文件,如何解决呢?
答
为什么它不会工作,是因为该文件database.sqlite
是/var/www/
目录内的原因,这给它一个自动RW-RW-R--
许可,这意味着你将无法更改文件的结构,我做了两件事情,它的工作,首先我改变了www目录的所有者。
chown -R <your username>:<your username> www/*
然后改变了项目目录
chmod -R 777 <project>/*
的许可,它为我工作
'要在磁盘访问数据库的绝对路径追加到DSN prefix.'见 - **绝对**。 –
@u_mulder,绝对路径?就像从根目录直接看,这似乎不太好,考虑到我的应用程序可能会分发,并且人们将有不同的路径,他们将存储应用程序 –
然后写信给开发人员。 –