为php5.6安装sqlite

时间:2016-06-09 22:17:16

标签: php sqlite

php manpage sais,你必须通过PECL安装sqlite,所以我尝试了最新版本:

cd /tmp/
wget https://pecl.php.net/get/SQLite-1.0.3.tgz
tar xvzf SQLite-1.0.3.tgz
cd SQLite-1.0.3/
phpize

但我不能像这样在Ubuntu 15.10上安装php_sqlite。我在make处收到错误:

/tmp/SQLite-1.0.3/sqlite.c: In function 'zif_sqlite_open':
/usr/include/php5/main/php_globals.h:32:29: error: 'struct _php_core_globals' has no member named 'safe_mode'

还有更多,还有一个真正的版本在PHP 5.6上运行吗?

我想运行一个使用函数sqlite_open

的旧程序

安装软件包并没有成功:

apt-get install php5-sqlite

所以也许有一个好的包装库,使用SQLite3::open来模拟旧函数?

2 个答案:

答案 0 :(得分:3)

我已经在这里唠叨了几天,但这最终对我有用:

sudo apt-get install php5.6-sqlite3

我有php5.6作为可执行文件,因此我确认php5.6 -m显示sqlite3已加载,而且是。{/ p>

之后,我能够执行以下简单脚本。以前它告诉我没有找到SQLite3类。

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }

   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "Opened database successfully\n";
   }

答案 1 :(得分:0)

据我所知,pecl page显示该包最后一次更新是在2004年。您链接的链接还指出:&#34;(PHP 5&lt; 5.4.0,PECL sqlite&gt; = 1.0 0.0)&#34 ;.简单地说它不适用于5.6。

如果这是一个选项,你应该只安装默认包而不是使用pecl。对于ubuntu,这是php5-sqlite

您关联的扩展程序非常陈旧。我建议您查看SQLite3 <{3}}

included by default.