我在Fedora 16 fc16.x86_64上使用php + apache。 我正在學習php和sqlite3(使用PDO)。但是我的代碼無法工作。PDO不起作用。我無法從PHP訪問sqlite3文件。
<?php
try {
$db = new PDO('sqlite:./z4.db');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->prepare('SELECT * FROM users;');
$posts = $db->execute();
echo "test test";
echo '<ul>';
while ($post = $posts->fetchObject()) {
echo '<li>' . $post->content . '</li>';
}
echo '</ul>';
} catch (Exception $e) {
die($e);
}
?>
源碼3是OK,數據庫文件是確定的,PHP -m的
輸出:
apc
bz2
calendar
Core
ctype
curl
date
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
igbinary
json
libxml
mbstring
mcrypt
memcache
memcached
mhash
mongo
mysql
mysqli
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
pgsql
Phar
readline
Reflection
session
shmop
SimpleXML
sockets
SPL
sqlite3
standard
tokenizer
wddx
xml
xmlreader
xmlwriter
xsl
zip
zlib
轉-qa的輸出| grep的PHP:
php-pecl-apc-3.1.9-2.fc16.x86_64
php-pgsql-5.3.11-1.fc16.x86_64
php-gd-5.3.11-1.fc16.x86_64
php-5.3.11-1.fc16.x86_64
php-pear-1.9.4-5.fc16.noarch
php-pdo-5.3.11-1.fc16.x86_64
php-pecl-mongo-1.2.10-1.fc16.x86_64
php-common-5.3.11-1.fc16.x86_64
php-devel-5.3.11-1.fc16.x86_64
php-cli-5.3.11-1.fc16.x86_64
php-mbstring-5.3.11-1.fc16.x86_64
php-mysql-5.3.11-1.fc16.x86_64
php-mcrypt-5.3.11-1.fc16.x86_64
php-pecl-memcached-1.0.2-6.fc16.x86_64
php-xml-5.3.11-1.fc16.x86_64
php-pecl-memcache-3.0.6-1.fc16.x86_64
php-pecl-igbinary-1.1.1-1.fc16.x86_64
增加一些擴展爲php.ini是警告後: 模塊 'XYZ' 已加載的未知0 ... 所以我刪除它們。
是PDO文件可寫? –
@MihaiStancu我不明白...但如果你問關於pdo.so: -rwxrwxr-x。 1 root root 101688 Apr 27 17:13 pdo.so – netnitzky
對不起,它是一個腦-o,(大腦錯字),我的意思是sqlite數據庫文件。腳本可以訪問嗎? –