Κλήση δύο βάσεων από το ίδιο αρχείο

Βοήθεια λύσεις και νέα από τον χώρο των open source ή έτοιμων εφαρμογών που έχουν φτιαχτεί με την PHP όπως oscommerce, κ.α.

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
ioannisls
Δημοσιεύσεις: 83
Εγγραφή: 11 Ιαν 2012 15:50
Επικοινωνία:

Κλήση δύο βάσεων από το ίδιο αρχείο

Δημοσίευση από ioannisls » 13 Αύγ 2014 23:09

Θα ήθελα να μάθω ποια είναι η ποιο σωστή γραφή για τη κλήση δύο βάσεων στο ίδιο αρχείο.
$db_server["host"] = "localhost"; //database server
$db_server["username"] = ""; // DB username
$db_server["password"] = ""; // DB password
$db_server["database"] = "database";// database name
$connection = mysql_connect($db_server["host"],$db_server["username"],$db_server["password"]);
mysql_query ('SET CHARACTER SET utf8');
mysql_query ('SET COLLATION_CONNECTION=utf8_general_ci');
mysql_select_db($db_server["database"], $connection);

$db_server["host"] = "localhost"; //database server
$db_server["username"] = ""; // DB username
$db_server["password"] = ""; // DB password
$db_server["database"] = "databaseb";// database name
$connectionb = mysql_connect($db_server["host"],$db_server["username"],$db_server["password"]);
mysql_query ('SET CHARACTER SET utf8');
mysql_query ('SET COLLATION_CONNECTION=utf8_general_ci');
mysql_select_db($db_server["database"], $connection);

mysql_close($connectionb);




mysql_close($connection);
ή
$db_server["host"] = "localhost"; //database server
$db_server["username"] = ""; // DB username
$db_server["password"] = ""; // DB password
$db_server["database"] = "database";// database name
$connection = mysql_connect($db_server["host"],$db_server["username"],$db_server["password"]);
mysql_query ('SET CHARACTER SET utf8');
mysql_query ('SET COLLATION_CONNECTION=utf8_general_ci');
mysql_select_db($db_server["database"], $connection);


mysql_close($connection);

$db_server["host"] = "localhost"; //database server
$db_server["username"] = ""; // DB username
$db_server["password"] = ""; // DB password
$db_server["database"] = "databaseb";// database name
$connectionb = mysql_connect($db_server["host"],$db_server["username"],$db_server["password"]);
mysql_query ('SET CHARACTER SET utf8');
mysql_query ('SET COLLATION_CONNECTION=utf8_general_ci');
mysql_select_db($db_server["database"], $connection);

mysql_close($connectionb);
$db_server["host"] = "localhost"; //database server
$db_server["username"] = ""; // DB username
$db_server["password"] = ""; // DB password
$db_server["database"] = "database";// database name
$connection = mysql_connect($db_server["host"],$db_server["username"],$db_server["password"]);
mysql_query ('SET CHARACTER SET utf8');
mysql_query ('SET COLLATION_CONNECTION=utf8_general_ci');
mysql_select_db($db_server["database"], $connection);




mysql_close($connection);

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

Κλήση δύο βάσεων από το ίδιο αρχείο

Δημοσίευση από burnmind » 14 Αύγ 2014 02:05

Κατ' αρχήν, θα πρότεινα να μη χρησιμοποιείς πλέον τις mysql_* functions, μιας και -μεταξύ άλλων- είναι deprecated.

Δες ένα παράδειγμα που χρησιμοποιεί τις mysqli functions, που μοιάζουν με τις mysql που χρησιμοποιείς (η άλλη επιλογή είναι να χρησιμοποιήσεις PDO).

Κώδικας: Επιλογή όλων

$db_server["host"] = "localhost"; //database server 
$db_server["username"] = ""; // DB username 
$db_server["password"] = ""; // DB password 
$db_server["database"] = "database1";

$mysqli = new mysqli($db_server["host"], $db_server["username"], $db_server["password"], $db_server["database"]);
$mysqli->query("SET NAMES 'utf8'");

//do stuff with database1

$mysqli->select_db('database2');

//do stuff with database2

$mysqli->close();
Από εκεί και πέρα, τι εννοείς πιο "σωστή"; Από ποια άποψη;

Αν πχ χρησιμοποιείς 2 διαφορετικούς MySQL servers ή συνδέεσαι στην άλλη βάση με διαφορετικά credentials, τότε το παραπάνω δε σε καλύπτει. Θα πρέπει να κάνεις 2ο connection.

Κατά τα άλλα, το πότε θα το κάνεις και πόσο θα μείνει ανοιχτό, εκτός και αν δεις πως έχει πραγματικό αντίκτυπο στο performance της εφαρμογής σου, είναι απλά προσωπική επιλογή.

ioannisls
Δημοσιεύσεις: 83
Εγγραφή: 11 Ιαν 2012 15:50
Επικοινωνία:

Κλήση δύο βάσεων από το ίδιο αρχείο

Δημοσίευση από ioannisls » 14 Αύγ 2014 17:59

ήταν περισσότερο θέμα performance να λέγεται η αλήθεια. με το λέξη σωστή ... επειδή είχα κάποια error για αυτό είπα πιο σωστή, αλλά τελικά το θέμα μου ήταν αλλού ... και όχι στα connection της βάσης
http://luckyweek.eu/
Στατιστικά για το στοιχηματικό ποδόσφαιρο και τα τυχερά παιχνίδια

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Κλήση δύο βάσεων από το ίδιο αρχείο

Δημοσίευση από dva_dev » 15 Αύγ 2014 01:50

Αν κάνεις λειτουργίες που απαιτούν να έχεις πρόσβαση ταυτόχρονα και στις δύο βάσεις σωστό είναι το πρώτο, αλλιώς σωστό είναι το δεύτερο.

Απάντηση

Επιστροφή στο “PHP έτοιμες εφαρμογές”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης