nomore Skrevet 4. mai 2005 Del Skrevet 4. mai 2005 har et lite problem som eg støtte borti. i ei php fil/side eg har så er det første som skjer er å koble seg opp mot en database. dette er en mysql server, eg kobler til via mysql_pconnect. eg tillegner ikke denne tilkoblingen et navn, eller variabel, så denne blir default for hver gang eg kaller mysql_query. men problemet er at eg skulle koble meg til enda en mysql database, litt lengre ned på siden. etter eg har gjort dette(tilegner tilkoblingen til en variabel) så får eg ikke til å koble til den forrige igjen, tilkoblingen er tapt på en måte. er det noen andre løsninger på dette en å måtte legge begge tilkoblingene til en variabel? snakker om ca 40-50 sider her, så det er ikke like lett. Lenke til kommentar
Lokaltog Skrevet 4. mai 2005 Del Skrevet 4. mai 2005 (endret) Tror det du trenger er en databaseklasse, da kan du opprette mange databaseobjekter, der alle har hver sin tilkobling (mysql_pconnect). Jeg bruker denne selvskrevne klassen: /** * The db class provides access to a MySQL database and easy * data/result management. * * @author Kim André Silkebækken <[email protected]> */ class db { /** * User name for the connection * * @var string $user */ private $user = ''; /** * Password for the connection * * @var string $pass */ private $pass = ''; /** * The database to connect to * * @var string $db */ private $db; /** * The hostname running the MySQL server * * @var string $host */ private $host = 'localhost'; /** * The result returned from a query is stored here * * @var resource $result */ public $result; /** * The object returned from the fetch_object() function * * @var object $object */ public $object; /** * Creates a db instance (constructor function) * * @access public * * @param optional string $user * @param optional string $pass * @param string $db * @param optional string $host * @return boolean True on successful connection, false if the connection failed. */ public function db($user, $pass, $db, $host) { if (mysql_connect('localhost', $user, $pass)) { if (!mysql_select_db($db)) { $this->debug('Error while selecting the database'); return false; } } else { $this->debug('Error while connecting to database.'); return false; } return true; } /** * Prints eventual error messages from MySQL as HTML comments. * * @access private * * @param string $message */ private function debug($message) { $get_debug = $_GET['debug']; if ($get_debug == '1' && !empty($message)) { echo "\r\n".'<!-- MySQL debug: '. $message .' | MySQL says: '. strip_tags(@mysql_error()) .' -->'."\r\n\r\n"; } } /** * This functions queries the database and stores the result * in the public variable $result. * * @access public * * @param string $sql * @return boolean */ public function query($sql) { if (!$this->result = mysql_query($sql)) { $this->debug('Query error (query: '. $sql .')'); return false; } return true; } /** * Fetches an object from an optional result. If no result is * provided, the result from the last query is used (if available). * * @access public * * @param optional resource $result * @return mixed (false on error, object on success) */ public function fetch_object($result = false) { if (!$result && $this->result) { if (!$this->object = mysql_fetch_object($this->result)) { $this->debug('Error while fetching object (class result)'); return false; } } else { if (!$this->object = mysql_fetch_object($result)) { $this->debug('Error while fetching object (function result)'); return false; } } return $this->object; } } Den kan brukes slik: $db1 = new db('user','pass','db','host'); $db2 = new db('user2','pass2','db2','host2'); $db1->query("SELECT *"); // spør tilkobling nummer 1 $row = $db1->fetch_object(); // henter objekt fra resultatet // kan også bruke resultatet på andre måter: mysql_num_rows($db1->result) Jeg synes det er veldig praktisk. Bare spør hvis det er noe du lurer på! Edit: kom på at den er skrevet for PHP5, så du må kanskje forandre litt hvis du skal bruke den under PHP4. Endret 4. mai 2005 av Lokaltog Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå