2012-01-09 58 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