今天早上我尝试使用PDO连接SQLite数据库并创建一个表格。首先,我创建了一个名为db.sqlite的文件,然后建立了我的连接并执行了一个"create table"查询,但是execute pdo函数始终返回false。
$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:
而不是文件,该怎么解决这个问题?
$dsn = "sqlite:" . __DIR__ .'/db.sqlite';
。另外,我为我的网站定义了一个常量,即home
或顶级目录,称为APP_HOME_ROOT
。所有数据都可以在该根目录下的data
目录中找到。所以我define('APP_DATA_ROOT,' APP_DATA_ROOT . '/data');
。是的,这也适用于 Windows。 - Ryan Vincentdefine('APP_DATA_ROOT', APP_HOME_ROOT . '/data')
。无论如何 - 你明白的,对吧? ;-/ - Ryan Vincent