Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Gryzące się połączenia ?
MaestroS
post
Post #1





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Kanagawa-ken, Japonia

Ostrzeżenie: (10%)
X----


Witam.
Mam klasę z funkcją do połączeń z trzeba bazami - zależnie od podanego identyfikatora:
  1. <?php
  2. public function connection($to) {
  3. switch($to) {
  4. case 0:
  5. $db = $this->account_database;
  6. break;
  7.  
  8. case 1:
  9. $db = $this->data_database;
  10. break;
  11.  
  12. case 2:
  13. $db = $this->forum_database;
  14. break;
  15.  
  16. default:
  17. die($to." ID doesn't exist and system couldn't select any database.");
  18. break;
  19. }
  20. $a_connect = mysql_pconnect($this->host, $this->user, $this->pass) or die("Cannot establish connection to the database.");
  21. $a_database = mysql_select_db($db, $a_connect) or die("Cannot select ".$db." database.");
  22. }
  23. ?>



Moje użycia baz wyglądają, ot tak:
Dla ID 1:
  1. <?php
  2. public function setting($name) {
  3. $this->connection(1);
  4. $_get = mysql_query("SELECT * FROM ".$this->format_name(1, "settings")." WHERE setting_name='".$name."'");
  5. $_fetch = mysql_fetch_assoc($_get);
  6. return $_fetch['setting_value'];
  7. }
  8. ?>


Dla ID 0:
  1. <?php
  2. public function restrict_email($email) {
  3. $this->connection(0);
  4. if (mysql_num_rows(mysql_query("SELECT * FROM ".$this->format_name(0, "emailset")." WHERE email='$email'"))>0) { return true; } else { return false; }
  5. }
  6. ?>


Dla ID 2:
  1. <?php
  2. public function phpbb_displayNews() {
  3. $this->connection(2);
  4. $getThreads = mysql_query("SELECT * FROM ".$this->setting('forum_prefix')."topics WHERE forum_id='".$this->setting("forum_newsid")."'") or die(mysql_error());
  5. while ($thread = mysql_fetch_assoc($getThreads))
  6. {
  7. echo '<a href="">'.$thread['topic_title'].'</a> by '.$this->getPosterName($thread['topic_poster']).'<BR>';
  8. }
  9. }
  10. ?>


Dlaczego przy użyciu polaczenia ID 2, mam:
Cytat
Table 'my.phpbb_topics' doesn't exist


?


Ach, ustawienia dodatkowe:
  1. <?php
  2. public $account_database = "account";  //Name of the accounts database
  3. public $account_table = "account";  //Table containing accounts
  4. public $_account_prefix = array("no", ""); //Prefix for table(s)
  5.  
  6. public $data_database = "my"; //Name of the datas database
  7. public $player_table = "users"; //Table containing players*
  8. public $_player_prefix = array("yes", "cq_"); //Are you using any prefix ?
  9.  
  10. public $forum_database = "phpbb";
  11. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Kocurro
post
Post #2





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Łączysz się używając tego samego loginu, hasła i hosta - php traktuje to jako jedno połączenie.

Możesz użyć kilku kont z różnymiu loginami bądź użyć prefixowania nazwą bazy.

pozdr.
Go to the top of the page
+Quote Post
MaestroS
post
Post #3





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Kanagawa-ken, Japonia

Ostrzeżenie: (10%)
X----


Prefixowania nazwą bazy ? tzn. ?
Go to the top of the page
+Quote Post
Kocurro
post
Post #4





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


zamiast:

FROM `tabela`

robisz

FROM `baza`.`tabela`

pozdr.
Go to the top of the page
+Quote Post
MaestroS
post
Post #5





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Kanagawa-ken, Japonia

Ostrzeżenie: (10%)
X----


To w takim wypadku, mysql_select_db() jest niepotrzebne ? Pytam, bo nigdy takiej metody nie stosowalem
Go to the top of the page
+Quote Post
Kocurro
post
Post #6





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


mysql_select_db i tak musisz użyć ... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

pozdr.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 17:23