私は mySQL と SQLite DB を使用するプロジェクトに取り組んでいます。私の目標は、コードが両方のデータベース タイプで動作できるようにすることです。クラスを使用して mySQL のコードを開発しましたが、オブジェクトmysqli
でも動作するように変更したいと考えていSQLite3
ます。
SQLite3
mysqli
クラスは(少なくとも私が使用するものとは)同じメソッドを実装しますが、異なる名前を使用することもあります。たとえば、 にmysqli::fetch_array()
なりSQLite3::fechArray()
ます。そこで、必要なメソッドを実装するために SQLite3 とSQLite3Result
クラスを拡張しています。例えば:
class SQLite3ResultEx extends SQLite3Result {
public function fetch_array() {
return parent::fetchArray();
}
}
SQLite3
問題は、クラスの応答を拡張して独自のSQLite3Response
拡張クラスを取得する方法がわからないことです。つまり:
class SQLite3Ex extends SQLite3 {
public function __construct($filename, $flags = null, $encryption_key = null) {
return parent::__construct($filename, $flags, $encryption_key);
}
public function query($query) {
$res = parent::query($query);
return $res;
}
}
今$res
はオブジェクトですが、オブジェクト(自分の拡張クラス)SQLite3Result
になる必要があります。SQLite3ResultEx