我使用php5和PDO创建一个sqlite数据库。
这是php代码:
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
try {
$dbh = new PDO("sqlite:/srv/www/htdocs/lowi.sqlite");
} catch (PDOException $e) {
die ($e->getMessage());
}
$query = "CREATE TABLE setting (
id INTEGER AUTOINCREMENT PRIMARY KEY,
title TEXT,
subTitle TEXT,
ssid TEXT,
defaultUrl TEXT,
imageBannerPath TEXT,
imageProfilePath TEXT,
loginAdmin TEXT,
passwordAdmin TEXT,
moderationActive TEXT CHECK(moderationActive IN ('T','F'))
)";
try {
$dbh->exec($query);
} catch (PDOException $e) {
echo $e->getMessage();
}
echo "Table 'setting' created successfully<br/>";
$dbh=NULL;
?>
它只输出:
Table 'setting' created successfully
我检查了权限,我的网络服务器在用户/组下运行:lighttpd(两者都是)
我创建sqlite数据库的目录具有以下权限:
drwxrwxr-x 4 root lighttpd 4096 Sep 9 16:15 /srv/www/htdocs/
并创建了数据库文件并具有这些持久性:
-rw------- 1 lighttpd lighttpd 0 Sep 9 15:48 /srv/www/htdocs/lowi.sqlite
问题是它仍然是一个空文件,当我尝试执行其他查询(如insert或select)时,它会执行它们而不会出错(比如create table)但这些查询没有效果。
注意:我知道我在安全方面没有做出好的选择(公共目录中的数据库文件......)没有必要告诉我这样的事情,我试图调试我改变了事物的损失,我只是将目前的情况与我在开发机器中的情况接近,以获得更好的答案。 :)