4

基本インストールとしてSQLite-Functionalityを使用しないPHPインストールがあるため、sqlite_*関数は使用できません。

PHPにプラグインをインストールせずにSQLiteデータベースにアクセスできるPHPライブラリ(PHPコード)はありますか?
(サーバー構成を変更できません)

実際、私は基本的なサポートのみが必要です(SELECTステートメントのみ)

基本的に私はhttps://github.com/kripken/sql.jsがSQLiteドライバーの純粋なJS実装であるような純粋なPHPSQLiteドライバーを探しています。

4

4 に答える 4

3

すべてが可能です

別の質問は、それが実際にそれを行うのに十分賢いかどうかです...

sqliteデータベースをmysqlまたは使用可能な他のdbにインポートするのがより良い方法だと思います。さて、これはまだインストールされている必要がsqliteあります...

方法次のとおりです。

class ExtremelySimpleAndPowerfulSQLite {
    private $database_file;
    public function __construct( $filename ) {
        $this->database_file = $filename;
    }

    public function sqlite_query( $sql ) {
        ob_start();
        passthru("sqlite ".$this->database_file." '$sql'", $result);
        if ($result <> 0) {
            ob_end_clean();
            return false;
        }
        $sqlite_result = ob_get_contents();
        ob_end_clean();
        return $sqlite_result;
    }
}

$sqlite = new ExtremelySimpleAndPowerfulSQLite("test.db");

// It works, huh...
echo $sqlite->sqlite_query('select * from table');

if ($foobar = $sqlite->sqlite_query('select * from mytable'))
    echo $foobar;

だが

これは、これらのphp独自のsqlite関数なしでsqliteを実行するため、...

于 2012-04-22T02:46:39.303 に答える
1

すべてのphpライブラリは、純粋なphpで記述され、いくつかの基礎となる関数を使用するか、インストールする必要のあるモジュールです。

したがって、唯一のオプションは、そのモジュールのCコードを取得し、それをphpに書き換えることです。必要な唯一の低レベル関数であるAFAIKは、ネットワークソケットで動作しており、phpで使用できます。

于 2012-04-18T12:34:51.287 に答える
0

グーグルで検索しているプレーンなphpsqliteドライバーは見つかりませんでした。私は梨から何かを得ようとしましたが、sqlitemdb2ドライバーはsqlitephp拡張機能を利用して機能します:

root@blackbigone:~# pear install MDB2_Driver_sqlite
pear/MDB2_Driver_sqlite requires PHP extension "sqlite"
No valid packages found
install failed

php-sqliteをインストールした後、pearモジュールは正常になりました:

root@blackbigone:~# pear install MDB2_Driver_sqlite
downloading MDB2_Driver_sqlite-1.4.1.tgz ...
Starting to download MDB2_Driver_sqlite-1.4.1.tgz (30,921 bytes)
.........done: 30,921 bytes
install ok: channel://pear.php.net/MDB2_Driver_sqlite-1.4.1

コードを読むと、私が見つけたphpsqliteラッパーは次のようなものになっています。

if (!function_exists('sqlite_open')) return false;

したがって、PHPで純粋なsqliteドライバーを作成した人はまだいないと思います。ごめん。

于 2012-04-22T00:34:59.787 に答える
0

答えが少し遅れているかもしれませんが、この種の質問を探している他のユーザーにとっては役立つと確信しています。SQLiteは例外的なソフトウェアであり、MySQLやその他の従来使用されているデータベースを置き換えることができる場合があります。(トラフィックの少ないWebサイトについて考えてみましょう。)残念ながら、PHP拡張機能として利用できるため、サードパーティの安価なホスティングプロバイダーに依存している場合はサーバー側で無効にすることができます。これが、SQL構文を完全にサポートするPHPでコード化された完全なフラットファイルデータベースであるPHPFileDBの開発を開始した理由です(私の目標は、MySQLベースのフレームワークとの完全な互換性を取得することです)

明らかに、それはオープンソースであり、https://github.com/morepaolo/PHPFileDBからアクセスできます。

お役に立てば幸いです!

于 2014-02-24T12:40:02.663 に答える