2012-05-26 16 views
0

我在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 ... 所以我刪除它們。

+0

是PDO文件可寫? –

+0

@MihaiStancu我不明白...但如果你問關於pdo.so: -rwxrwxr-x。 1 root root 101688 Apr 27 17:13 pdo.so – netnitzky

+0

對不起,它是一個腦-o,(大腦錯字),我的意思是sqlite數據庫文件。腳本可以訪問嗎? –

回答

0

當您通過命令行執行php時,通常不會執行與您的web服務器運行相同的php二進制文件。它們可以是不同的版本,並且幾乎總是有不同的php.ini和configs。

使用phpinfo()來自script run through the webserver。使用它來找到一個正確的php.ini文件進行編輯,然後重新啓動網絡服務器以確保設置更新。

接通display_errors並設置error_reportingE_ALL

+0

非常感謝。我的配置沒問題,但代碼錯了。 – netnitzky