4

我不确定我的服务器上是否有 sqlite,所以我想使用 PDO 对象来测试并查看服务器是否支持 sqlite。我试过:

<?php
echo `sqlite3 -v`;

收到以下错误:Warning: shell_exec() has been disabled for security reasons

4

6 回答 6

8

您可以只使用function_exists()来检查 sqlite 函数是否存在,如下所示:

if (function_exists('sqlite_open')) {
   echo 'Sqlite PHP extension loaded';
} 

因为SQLite3前者不起作用,所以请改用它(由 Prid 的评论提供)

if (class_exists('SQLite3')) {
   echo 'SQLite3 extension loaded';
}
于 2012-11-05T09:19:14.997 回答
8

或者您可以简单地使用:

if (extension_loaded('sqlite3')) {
    // Do things
}

http://php.net/manual/en/function.extension-loaded.php

于 2015-03-09T19:05:28.487 回答
1

如果您想直接运行 shell-commands,您需要在其中查找php.ini
shell_exec

可能低于

disable_functions = ..., shell_exec, ... 
于 2012-11-05T09:17:01.413 回答
1

您的提供商是否支持 sqlite3,那么您可以通过以下方式对其进行测试:

<?php

print_r(SQLite3::version());

?>

另请参阅手册:https ://www.php.net/manual/en/book.sqlite3.php

于 2020-06-24T19:29:52.630 回答
0

我实际上已经找到了一种测试方法,现在:

<?php
echo sqlite_libversion();
echo "<br>";
echo phpversion();

返回如下内容:

2.8.17
5.2.17
于 2012-11-05T09:16:19.150 回答
0

对于PHP 5.4.0 及更高版本,接受的答案将不起作用,因为旧的 SQLite 扩展已被删除

试试这个作为替代方案:

if (class_exists('SQLite3')) {
   echo 'Sqlite PHP extension loaded';
}

或使用extension_loaded('sqlite3')代替。

于 2020-08-17T02:21:33.640 回答