事情是,我需要用mysqli編寫一個數據庫類,它應該支持多個連接到不同的數據庫。 我知道多個連接不好,但我沒有其他選擇。php分類與mysqli,它支持多個連接
如果有什麼好的類支持多連接的例子嗎?
當我開始寫課程時,您是否知道我應該考慮的任何提示?我的最佳做法是什麼?
由於提前,
想到的事情是,我需要用mysqli編寫一個數據庫類,它應該支持多個連接到不同的數據庫。 我知道多個連接不好,但我沒有其他選擇。php分類與mysqli,它支持多個連接
如果有什麼好的類支持多連接的例子嗎?
當我開始寫課程時,您是否知道我應該考慮的任何提示?我的最佳做法是什麼?
由於提前,
想到的第一件事,是一個容器類,即存儲庫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-connect-to-multiple-mysql-databases-on-a-single-page來獲得第一個想法。 – Quasdunk
爲什麼'多個連接不好'?還有什麼其他方式可以連接到更多的服務器或使用異步查詢? – Mchl
@Quasdunk謝謝,我已經看過了這個話題和其他我在StackOverflow上找到的。 – kaha