mysqliを使用してdbクラスを作成する必要があり、異なるデータベースへの複数の接続をサポートする必要があります。 複数の接続が悪いことは知っていますが、他に選択肢はありません。複数の接続をサポートするmysqliを使用したphp dbクラス
複数の接続をサポートするクラスの良い例があれば、
クラスの作成を開始する際に考慮する必要があるヒントをご存知ですか?私の場合のベストプラクティスは何ですか?事前に
おかげで、頭に浮かぶ
mysqliを使用してdbクラスを作成する必要があり、異なるデータベースへの複数の接続をサポートする必要があります。 複数の接続が悪いことは知っていますが、他に選択肢はありません。複数の接続をサポートするmysqliを使用したphp dbクラス
複数の接続をサポートするクラスの良い例があれば、
クラスの作成を開始する際に考慮する必要があるヒントをご存知ですか?私の場合のベストプラクティスは何ですか?事前に
おかげで、頭に浮かぶ
まず最初は、それに格納MySQLiのオブジェクトことを、コンテナクラスです。このような 何か:
class MySQLiContainer extends SplObjectStorage{
public function newConnection($host = null, $username = null, $passwd = null, $dbname = null, $port = null, $socket = null) {
$mysqli = new mysqli($host, $username, $passwd, $dbname, $port, $socket);
$this->attach($mysqli);
return $mysqli;
}
}
//usage
$mysqliContainer = new MySQLiContainer();
$c1 = $mysqliContainer->newConnection('localhost','root','root','localDatabase');
$c1->query('SELECT ....');
$c2 = $mysqliContainer->newConnection('mysql.remotehost.net','hackermom','bobbytables','schoolDatabase');
$name = 'Robert\'); DROP TABLE students;--';
$c2->multi_query("SELECT * FROM students WHERE name = '$name'");
必要な機能の詳細を知らなくても、それは、これはしかし良い考えであれば言うことは困難です。)
詳細情報についてSplObjectStorageクラス。
http://stackoverflow.com/questions/1384191/how-to-make-a-proper-mysqli-extension-class-with-prepared-statementsおよびhttp://stackoverflow.comをご覧ください。/questions/274892/how-do-you-you-do-you-multiple-mysql-databases-on-a-single-webpageが最初のアイデアを得ます。 – Quasdunk
なぜ複数の接続が悪いのですか? 2つ以上のサーバーに接続する方法や非同期クエリを使用する方法は他にありますか? – Mchl
@Quasdunkありがとう、私は既にStackOverflowで見つけたこのトピックと他のものを見てきました。 – kaha