Autor Zpráva
845
Profil *
zdravím,
môže byť PHP 2x pripojené do dvoch MySQL databáz súčasne?

príklad:
mysql_coonect("host1",... // atak dalej
mysql_select_db("databaza1");

mysql_connect("uplneinyhost2", ...//atak dalej
mysql_select_db("databaza2");
Tori
Profil
Ano, může. Někde (= do proměnné) si ukládejte návratovou hodnotu mysql_connect, měl byste ji pak používat povinně u všech ostatních funkcí (mysql_select_db, mysql_query atd.), jinak se automaticky použije poslední vytvořené spojení.
845
Profil *
mám 1 súbor kde mám narequireovaný config kde mám
<?php
/* nastavenia DB */
$host = "";    //host
$user = "";     //user
$pass = "";      //password
$db = "";       //database

/* pripojenie do DB */
$connect = mysql_connect($host, $user, $pass) or die(mysql_error());
if($connect){
 mysql_select_db($db) or die(mysql_error());
}
?>
a teraz do toho súboru potrebujem dať mysql_connect a select db a mysql_query tak mi poraď prosím ako to mám dať do tích premenných lebo som mimo trocha :)
Alphard
Profil
Tori to popsala do posledního kroku. Snad zvládnete udělat $connect1 a $connect2.
(Možná) lépe např.
$db = array();
$db['pages'] = mysql_connect($host, $user, $pass);
$db['phorum'] = ...;
Nevnucuji pole, spíš inteligentní pojmenování.
DarkMeni
Profil
<?
$connect = mysql_connect($host, $user, $pass) or die(mysql_error());
if($connect){
 mysql_select_db($db) or die(mysql_error());
}
?>

Nemusíš 2x testovat, jestli se ti spojení povedlo, páč kdyby selhalo, tak ti skript chcípne s posledním výstupem jako popisem chyby, která vznika.

Jinak to co psala Tori by vypadalo jak máš, akorát by si do mysql_(query|select_db|error|close...) ještě jako další argument přidal odkaz na spojení se kterým tu akci chceš provést:

<?php
$spojeni_a = mysql_connect('prihlasovaci udaje...');
$spojeni_b = mysql_connect('prihlaseni do jineho serveru mysql...');
mysql_select_db('databaze_a', $spojeni_a);
mysql_select_db('databaze_b', $spojeni_b);

mysql_query('prikaz', $spojeni_a); //vykoná příkaz pro spojení_a v databázi "databaze_a"
?>

Kdyžtak to máš i v manuálu: http://www.php.net/manual/en/function.mysql-connect.php
Alphard
Profil
DarkMeni:
Nemusíš 2x testovat, jestli se ti spojení povedlo
Tak tam je asi záměr testovat, jestli se vybrala databáze. Ale já celkově tento způsob ošetření považuji za špatný, snad ještě horší, než žádný. Nechápu, proč se tak blbá konstrukce die(mysql_error()) vysypání chyby na výstup i produkčním módu bez čehokoliv srozumitelného pořád drží při životě.
845
Profil *
Pomohli ste mi vďaka DarkMeni a Alphard

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: