私はMySQLからSQLiteデータベースに自分のWebアプリケーションを移行しています。私はsqliteと通信するための2つのPHP拡張があることを知りました:php_sqlite3.dllとphp_pdo_sqlite.dll。sqlite3とpdo_sqliteの違い
どのような拡張機能が優れていますか?または、別の質問:これらの拡張の基本的な違いは何ですか?
私はMySQLからSQLiteデータベースに自分のWebアプリケーションを移行しています。私はsqliteと通信するための2つのPHP拡張があることを知りました:php_sqlite3.dllとphp_pdo_sqlite.dll。sqlite3とpdo_sqliteの違い
どのような拡張機能が優れていますか?または、別の質問:これらの拡張の基本的な違いは何ですか?
PDOはPHPでのデータベース接続のラッパーです。大部分のデータベース管理システム(MySQL、PostgreSQL ...)が提供する機能をカバーするように設計されているので、どのDMBSを使用していても関数呼び出しはすべて同じです。 http://php.net/manual/en/book.pdo.phpを参照してください。 php_pdo_sqlite.dll
では、PDOインターフェイスを使用してSQLiteデータベースにアクセスできます。
他のライブラリ(php_sqlite3.dll
)は、さまざまな関数呼び出しを持つ独自のインターフェイスです。これを使用するコードは、SQLiteデータベースにのみアクセスできます。 http://php.net/manual/en/book.sqlite3.php
PDOがSQLite3の機能と完全に一致しないことがあります。つまり、SQLite3はPDOで利用できないものを提供するか、PDOは何もしない関数を持ちます。なぜなら、SQLite3はそれらをサポートできないからです。
PDOの利点は、将来スイッチを切り替える場合(もう一度やり直すことになります)、多くのコードを変更する必要がないということです。 SQLのジェネリックを十分に保ち続ければ、接続文を変更するだけで済むでしょう。
PDOではなくsqlite3拡張を使用していることを確認する方法はありますか? –
ええ、彼らは完全に異なるクラスを使うので、pdoを使ったコードは 'new PDO(...)'を呼び出し、sqlite3を使ったコードは 'new SQLite3(...)'を呼び出します。 –
php_sqlite3は直接sqliteインターフェイスです。基本的には、mysql _ *()関数を提供するphp_mysqlに相当するsqliteに相当します。 pdo_sqliteを使用すると、PDOはsqliteを使用できます。 –