我仍然主要從所購買的書中學(xué)習(xí),但是今天我提醒我,盡管我今年購買了有關(guān)PHP編程的書,但我的書已經(jīng)過時(shí)了。現(xiàn)在,我知道不推薦使用PHP中的mysql_ *命令,而應(yīng)使用更安全,更穩(wěn)定的預(yù)處理語句和PDO代替它們。因此,我根據(jù)自己的意愿重寫了所有網(wǎng)絡(luò),也許我會需要您一些建議,以幫助他們正確地進(jìn)行網(wǎng)絡(luò)建設(shè)以及所有經(jīng)驗(yàn)豐富的人的工作:)因此,我將在這里僅以主要部分(連接到數(shù)據(jù)庫并選擇數(shù)據(jù)庫)開始我的重寫(其余的我可以自己用Google和手冊完成)。我將在這里寫下我的舊腳本,并問您我是否在做正確的事情,并且沒有丟失任何東西,我希望這對其他人也可以是一本不錯(cuò)的手冊/答案。因此,讓我們開始吧。所以在配置中我有這樣的事情:$db = new dbConn('127.0.0.1', 'root', 'pass', 'people', 'animals');應(yīng)該是這樣的:$db = new PDO('mysql:host=127.0.0.1;dbname=people;charset=UTF-8', 'root', 'pass');對?但是,當(dāng)我以后需要選擇數(shù)據(jù)庫時(shí),應(yīng)該不這樣做dbname=people;嗎?但是以后如何選擇數(shù)據(jù)庫?這是我重寫的腳本,也是大多數(shù)Web項(xiàng)目中最基本的腳本,我希望它不僅使我了解新的PDO系統(tǒng)是如何工作的:class dbConn{ public function __construct($server, $user, $pass, $db_people, $db_animals) { if (!empty($server) && !empty($user) && !empty($pass) && !empty($db_people) && !empty($db_animals)) { $this->server = $server; $this->user = $user; $this->pass = $pass; $this->db_people = $db_people; $this->db_animals = $db_animals; $this->connect(); } else { die("Set up connection to db"); } } public function connect() { $this->conn = mysql_connect($this->server, $this->user, $this->pass) or die ('cannot connect to MySQL'); } public function selectDb($database) { switch($database) { case 'people': mysql_select_db($this->db_people, $this->conn) or die ('cannot connect to database '.$this->db_people.'.'); mysql_query("SET NAMES 'utf8'"); break; case 'animals': mysql_select_db($this->db_animals, $this->conn) or die ('cannot connect to database '.$this->db_animals.'.'); mysql_query("SET NAMES 'utf8'"); } }所以,從我所知道的谷歌和維基-功能,如public function __construct與public function __destruct()不應(yīng)該需要了,對不對?與public function connect()SO之類的功能相同,只剩下什么,public function selectDb($database)但是我不知道如何正確執(zhí)行此操作而不破壞所有與數(shù)據(jù)庫的連接。因?yàn)樵谖业钠溆啻a(此處未提及)中,我可以通過此代碼輕松選擇數(shù)據(jù)庫:$this->db->selectDb("people");但是,使用準(zhǔn)備好的語句,我什至不知道這樣做是否可行。希望您提出一些建議,以幫助我和其他用戶更好地理解此新代碼。您可能擁有的代碼中的其他部分在此MySQL開發(fā)人員的PDO教程中進(jìn)行了說明。謝謝。
2 回答

拉莫斯之舞
TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超10個(gè)贊
我認(rèn)為在應(yīng)用程序內(nèi)部切換數(shù)據(jù)庫的最簡單方法是:
$pdo_instance->query("USE people");
和
$pdo_instance->query("USE animals");
或者更好(更清潔)的方式可能是
$db_people = new PDO('mysql:host=127.0.0.1;dbname=people;charset=UTF-8', 'root', 'pass');
和
$db_animals = new PDO('mysql:host=127.0.0.1;dbname=animals;charset=UTF-8', 'root', 'pass');
如果您將班級中的數(shù)據(jù)庫標(biāo)記為活動(dòng)數(shù)據(jù)庫,則可以使用$db_people->query()或來訪問數(shù)據(jù)$db_animals->query()。
添加回答
舉報(bào)
0/150
提交
取消