php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.12.2005, 16:48  
Benutzer
 
Registriert seit: 20.01.2005
Beiträge: 94
TheTommynator
Standard Datenbankverbindung in eine Funktion packen?? --> Geht da

Hallo,

Ich habe hier in meinem Projekt das Problem, dass ich viele verschiedene Datenbankverbindungen herstellen muss.

Nun würde ich die Datenbankverbindung gerne in eine Funktion packen, damit ich das ganze ein wenig komfortabler gestalten kann.

Nur, wenn ich einfach mysql_connect und select_db in eine Funktion packe, dann hagelt es Fehlermeldungen.

Kann mir einer sagen, ob das überhaupt geht, wenn ja, wie??
TheTommynator ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.12.2005, 16:53  
Erfahrener Benutzer
 
Benutzerbild von dsmcg
 
Registriert seit: 11.10.2005
Beiträge: 2.405
dsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäre
Standard

code zeigen wie du vorgegangen bist, Fehlermeldungen?! zeig sie

ansonsten einfach verschiedene includes?!
__________________
Wie man Fragen richtig stellt
dsmcg ist offline  
Alt 05.12.2005, 16:57  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

// inc.dbconnect.php
PHP-Code:
<?php
define
('MYSQL_HOST''localhost');
define('MYSQL_USER''user'); 
define('MYSQL_PW''passwort');
define('MYSQL_DB''mydatabase');

function 
dbConnect()
{
    
mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PW) or die("Konnte Verbindung zur Datenbank nicht herstellen:
"
.mysql_error());
    
mysql_select_db(MYSQL_DB) or die("Konnte Datenbank nicht auswählen:
"
.mysql_error());
}
?>
Das ganze per require_once() einbinden und dbConnect() einfach aufrufen.
Wenn du ganz clever & faul bist, lässt du die Funktion weg, lässt also direkt beim require_once() das mysql_connect() und mysql_select_db() ausführen.
Zergling-new ist offline  
Alt 05.12.2005, 16:59  
Benutzer
 
Registriert seit: 20.01.2005
Beiträge: 94
TheTommynator
Standard

Den Code mit der Funktion drin hab ich nicht mehr, weil ich es nur kurz getestet habe, aber dann wieder gelöscht habe, weil es nicht funktioniert hat *schäm*

Den restlichen Code, zeige ich natürlich gerne.
Es ist eine ganz einfache Seite, die eine Verbindung zu zwei verschiedenen Datenbanken herstellt, um das ganze zu testen.

PHP-Code:
<?php

  
// Verbindungsherstellung zur Forendatenbank um spaeter die Usernamen der Helfer
  // ausgeben zu koennen
  
$usernamen = @mysql_connect("localhost","*********","*********")
    or die(
"Verbindung zu MySQL gescheitert!");
  @
mysql_select_db("****_phpbb",$usernamen)
    or die(
"Datenbankzugriff gescheitert!");
  
$sql "SELECT username FROM *******_users";
  
  
$query mysql_query($sql,$usernamen);
  
  
// Ende der Verbindungsherstellung zur Forendatenbank
  
  // Verbindungsherstellung zur MMOG Datenbank um spaeter die News ausgeben zu koennen
  
$news = @mysql_connect("localhost","********","**********")
    or die(
"Verbindung zu MySQL gescheitert");
  @
mysql_select_db("********_mmog",$news)
    or die(
"Datenbankzugriff gescheitert");
    
  
$sql_2 "SELECT id, titel, text, datum FROM News ORDER BY id DESC";
  
  
$query_2 mysql_query($sql_2,$news);
  
  
// Ende der Verbindungsherstellung zur Newsdatenbank
  
  
echo "<html>\n";
  echo 
"\t<head>\n";
  echo 
"\t<head>\n";
  echo 
"\t<body bgcolor=\"#FFA200\">\n";
  echo 
"\t\t<h3>News</h3>\n";
  
  
// Ausgabe der aktuellen News
  
while ($row2=mysql_fetch_assoc($query_2))
  {
    echo 
"<div style=\"width: 600px; border-style: solid; border-width: 1px; background-color: #FCB455; padding: 10px;\">\n";
    echo 
"<font size=\"4\">" $row2["titel"] . "</font>
<hr style=\"height: 1px; background-color: black; border: 1px;\">\n"
;
    echo 
$row2["text"] . "
<hr style=\"height: 1px; background-color: black; border: 1px;\">\n"
;
    echo 
$row2["datum"] . "\n";
    echo 
"</div>
\n"
;
  }
  
// Ende der Ausgabe der News
  
echo "\t\t
\n"
;
  echo 
"\t\tFolgende Personen arbeiten bereits mit:

\n"
;
  
// Ausgabe der Usernamen aus der Forendatenbank
  
while ($row=mysql_fetch_assoc($query))
  {
    if (
$row["username"] != "Anonymous")
    {
      echo 
"\t\t- $row[username] 
\n"
;
    }
  }
  
// Ende der Ausgabe der Usernamen
  
echo "\t<body>\n";
  echo 
"</html>";
  
mysql_close($usernamen);
  
mysql_close($news);
?>
So, die beiden Datenbank abfragen wollte ich eigentlich in eine universelle Funktion schreiben.

Wenn ihr mir helfen könnt, dann DAAAAANNNKEEE!
TheTommynator ist offline  
Alt 05.12.2005, 17:01  
Benutzer
 
Registriert seit: 20.01.2005
Beiträge: 94
TheTommynator
Standard

Zitat:
Zitat von Zergling
// inc.dbconnect.php
PHP-Code:
<?php
define
('MYSQL_HOST''localhost');
define('MYSQL_USER''user'); 
define('MYSQL_PW''passwort');
define('MYSQL_DB''mydatabase');

function 
dbConnect()
{
    
mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PW) or die("Konnte Verbindung zur Datenbank nicht herstellen:
"
.mysql_error());
    
mysql_select_db(MYSQL_DB) or die("Konnte Datenbank nicht auswählen:
"
.mysql_error());
}
?>
Das ganze per require_once() einbinden und dbConnect() einfach aufrufen.
Wenn du ganz clever & faul bist, lässt du die Funktion weg, lässt also direkt beim require_once() das mysql_connect() und mysql_select_db() ausführen.
Das ist natürlich eine Idee

Vielleicht kannst du mir noch zeigen, wie ich sie in meinem Post über diesem anwenden kann

DANKE
TheTommynator ist offline  
Alt 05.12.2005, 17:17  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Bastel dir ne Klasse, die zwischen den Datenbanken switcht, ein Neuaufbau der Verbindung scheint hier garnicht nötig.

PHP-Code:
<?php
// class.DB.php
define('MYSQL_HOST''localhost');
define('MYSQL_USER''user'); 
define('MYSQL_PW''passwort');
define('MYSQL_DEFAULT_DB''mydatabase'); 


class 
DB
{
  var 
$_connect;
  var 
$_db;

  function 
connect($host MYSQL_HOST$user MYSQL_USER$pw MYSQL_PW)
  {
     if (
$this->_connect mysql_connect($host$user$pw)) {
       die(
mysql_error());
     }
  }

  function 
selectDB($db MYSQL_DEFAULT_DB)
  {
     if (
$this->_connect && $this->_db != $db) {
       if (
$this->_db mysql_select_db($db)) {
         die(
mysql_error());
       }
     }
  }
}


// Aufruf:
require_once 'class.DB.php';
DB::connect();
DB::selectDB('news_mmog');
// news relevante db queries
DB::selectDB('board_phpBB');
// foren relevante db queries
?>
-- ungetestet

Oder benutz am Besten gleich PEAR:B
http://pear.php.net
Zergling-new ist offline  
Alt 05.12.2005, 17:19  
Benutzer
 
Registriert seit: 20.01.2005
Beiträge: 94
TheTommynator
Standard

Oh...

Mit Klassen hab ich noch nie gearbeitet.

Gibts da ein gutes Tutorial dazu?
TheTommynator ist offline  
Alt 05.12.2005, 17:26  
Erfahrener Benutzer
 
Benutzerbild von dsmcg
 
Registriert seit: 11.10.2005
Beiträge: 2.405
dsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäre
Standard

schau mal hier vorbei:
http://www.professionelle-softwareen...erste_auflage/

abschnitt:
I. Objektorientierte Programmierung.
__________________
Wie man Fragen richtig stellt
dsmcg ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
JS: Einführung - Javascript im Schichtenmodell nikosch Tutorials 4 11.04.2009 17:06
Rekursive Funktion bricht ab... duras666 PHP Tipps 2008 9 28.04.2008 11:36
gpc_quotes funktion: verbesserungsvorschläge? Promaetheus PHP Tipps 2007 10 12.08.2007 19:29
Funktion macht Probleme mokus PHP Tipps 2006 19 20.06.2006 03:16
Komplexe Funktion: +Übersichtlichkeit, -Performance Jacks Rache PHP Tipps 2006 3 07.06.2006 14:22
Array in rekursiver Funktion auslesen Gumfuzi PHP Tipps 2007 17 15.11.2005 12:01
PHP-GTK Tutorial Beitragsarchiv 9 02.11.2005 21:07
Rückgabewert einer rekrusiven Funktion PHP-Fortgeschrittene 7 06.10.2005 18:44
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
In einer Funktion auf eine Funktion der Klasse zugreifen phpbeginner PHP Tipps 2005-2 2 28.07.2005 00:30
Funktion in einer Funktion aufrufen? PHP Tipps 2005-2 11 14.06.2005 15:14
[Erledigt] Array-Übergabe in Funktion PHP Tipps 2005 1 08.05.2005 21:05
[Erledigt] Wie kann ich beliebig viele Werte an eine Funktion übergeben PHP Tipps 2005 11 25.01.2005 10:44
[Erledigt] sql syntax error in funktion, kann aber nix finden :( PHP Tipps 2004 10 20.07.2004 19:19
[Erledigt] Referenz auf Funktion übergeben PHP-Fortgeschrittene 7 20.07.2004 09:51

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php datenbankzugriff in funktion, php datenbank verbindung in funktion aufruf

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:52 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.