我不确定我的服务器上是否有SQLite,因此我想使用PDO对象来测试并查看服务器是否支持SQLite。我尝试了:
<?php
echo `sqlite3 -v`;
收到以下错误:
警告:由于安全原因,shell_exec()已被禁用
。if (function_exists('sqlite_open')) {
echo 'Sqlite PHP extension loaded';
}
对于SQLite3
,前面的方法行不通,使用以下方法(感谢Prid的评论):
if (class_exists('SQLite3')) {
echo 'SQLite3 extension loaded';
}
if (extension_loaded('sqlite3')) {
// Do things
}
在你的php.ini
里被禁用了
如果你想直接运行shell命令,你需要查找里面的shell_exec
它可能在以下位置:
disable_functions = ..., shell_exec, ...
<?php
print_r(SQLite3::version());
?>
我现在实际上已经找到了一种测试方法:
<?php
echo sqlite_libversion();
echo "<br>";
echo phpversion();
返回类似于这样的内容:
2.8.17
5.2.17
sqlite_libversion
将会生成 PHP 运行时错误,你需要使用 function_exists()
函数来防止这种情况发生。 - Nelsonfunction_exists('sqlite_libversion')
,但是这样打字更多,对吧? :) - Wolfpack'08对于PHP 5.4.0及以上版本,原先被接受的答案将不再适用,因为旧版SQLite扩展已被删除。
作为替代方案,请尝试以下方法:
if (class_exists('SQLite3')) {
echo 'Sqlite PHP extension loaded';
}
php -r 'echo function_exists("sqlite_open") ? "yes" : "no";'
- Harry12345if(class_exists('SQLite3')){
- Prid