2012-01-09 57 views
0

我在企業託管解決方案,並試圖測試sqlite的存在。我正在運行以下代碼:phpversion()和sqlite_libversion()不返回任何東西

<?php 
echo sqlite_libversion(), "\n", phpversion(); 
?> 

但是我得到一個空白頁。我知道PHP正在運行,因爲phpinfo()成功,但是這還不足以告訴我sqlite是否正在運行,因爲sqlite.ini存在於phpinfo()中,但無法找到任何其他信息。

我正在通過FTP訪問服務器並鎖定到web-root。有誰知道爲什麼phpversion()sqlite_libversion()什麼都沒有返回?

回答

2

如果SQLite是不可用,sqlite_libversion()功能甚至不存在,將只拋出一個PHP錯誤:

Fatal error: Call to undefined function sqlite_libversion()

您需要使用function_exists()來測試函數是否實際存在。

此外,您應該配置錯誤報告,以便您可以實際看到錯誤消息。您有幾種方法可以這樣做:

  1. 編輯您的php.ini文件:

    error_reporting = E_ALL | E_STRICT 
    display_errors = On 
    
  2. 將這個對你的腳本的頂部:

    <?php 
    
    error_reporting(E_ALL | E_STRICT); 
    ini_set('display_errors', TRUE); 
    
  3. 如果PHP運行作爲Apache模塊,您還可以使用.htaccess文件:

    # Print E_ALL | E_STRICT from a PHP script to get the appropriate number: 
    php_value error_reporting 2147483647 
    php_flag display_errors on 
    

更新:

如果運行這段代碼並沒有別的什麼,你得到什麼?

<?php 

error_reporting(E_ALL | E_STRICT); 
ini_set('display_errors', TRUE); 

header('Content-Type: text/plain'); 

var_dump(phpversion()); 
if(function_exists('sqlite_libversion')){ 
    var_dump(sqlite_libversion()); 
} 

?> 
+0

不幸的是,我被鎖定到網絡根,選項2沒有顯示任何錯誤。 – 2012-01-09 10:35:59

+0

這也沒有顯示:'echo(function_exists(「sqlite_libversion」))? 「sqlite exists」:「not here」;' – 2012-01-09 10:39:32

+0

@George - 查看我的更新 – 2012-01-09 10:41:33

0

取出回聲,只是做

<?php 
    phpversion(); 
    sqlite_libversion(); 
?> 
+1

這兩個函數除了返回一個字符串什麼也不做。如果您不使用返回的值,則代碼無意義。 – 2012-01-09 10:38:35

+0

你說得對。它甚至沒有打我,這是phpversion,而不是phpinfo – sqram 2012-01-09 10:51:57