zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden MySQL Verbindung PHP Class

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 03.09.2008, 18:14
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 24.07.2008
Beiträge: 88
erxx befindet sich auf einem aufstrebenden Ast
Standard MySQL Verbindung PHP Class

PHP-Code:
<?
class db {
 
/** vordefinierung der einzelnen class variablen **/
 
var $db_tab = array();
 var 
$server 'localhost';
 var 
$user 'user';
 var 
$pass 'pass';
 var 
$db 'name';
 var 
$querycounter 0;
 var 
$unbuffered 0;
 var 
$sql_error '';
 var 
$errormsg '';
 var 
$rows 1;
 var 
$parse_error TRUE;

 
    
/** datenbank variablen festelgen und DB connect initialisieren **/
    
function db($server,$user,$pass,$db) {
      
$this->server $server;
      
$this->user $user;
      
$this->pass $pass;
      
$this->base $base;
 
      
$this->init();
    }
 
    
/** Datenbank connect und DB-selectierung starten **/
    
function init() {
       
mysql_connect($this->server,$this->user,$this->pass) or $this->sql_error("Datenbank-Server antwortet nicht.","DB-CONNECT");
 
       
$this->query("SET NAMES `utf8` COLLATE `utf8_general_ci`");
 
       
$this->select_db($this->base);
    }
 
    
/** Datenbank Selectieren **/
    
function select_db($base) {
       
mysql_select_db($base) or $this->sql_error("Datebank verbindung konnte nicht aufgebaut werden.","DB-SELECT zu ".$base);
    }
    
     
/** sql_error function, zur detailierten error message **/
    
function sql_error($row="n/a",$sql) {
      global 
$sql_unid,$sql_error,$errormsg;
      if(
$this->parse_error == TRUE) {
        
$errormsg .= "<div class=\"iebug b-t\">\n";
        
$errormsg .= "<b>MySQL Fehler in ".$sql_unid.":</b><br />\n";
        
$errormsg .= "<b>Fehler: <span style=\"color: #FF0000;\">".$row."</span></b><br />\n";
        
$errormsg .= "<b>Rückmeldung:</b> ".mysql_error()."<br />\n";
        
$errormsg .= "<b>Befehl:</b> ".$sql."<br />\n";
        
$errormsg .= "<b>Error number: ".mysql_errno()."</b><br />\n";
        
$errormsg .= "<b>Date:</b> ".date("d.m.y - H:i")."<br />\n";
        
$errormsg .= "</div>\n<br />\n";
 
        
$sql_error .= $errormsg;
      }
    }
    
    
/** abbgeaenderte query function, mit 2 verschiedenen ausfuehrungen und einem querycouter **/
    
function query($sql="",$modus="normal") {
        global 
$querycounter$sql_error$rights;
 
        
$total_execution  "";
        if(empty(
$sql)) return FALSE;
            
$querycounter++;
 
            
$start_time $this->getmicrotime();
            if(
$modus == "normal") {
            
$query_id mysql_query($sql) or $this->sql_error("SQL-Query fehlerhaft.",$sql);
            }else if(
$modus == "unbuffered") {
            
$query_id mysql_unbuffered_query($sql);
            }
 
            
$execute_time round(($this->getmicrotime() - $start_time),8);
            
$total_execution += $execute_time;
        if(isset(
$_SESSION['querys'])) {
 
           
$sql_error .= "<table align=\"center\" cellpadding=\"2\" cellspacing=\"0\" class=\"iebug b-t row3\" width=\"100%\">\n";
           
$sql_error .= "<tr>\n";
           
$sql_error .= "<td width=\"2%\" class=\"b-r\" align=\"center\" nowrap=\"nowrap\">".$this->rows++."</td>\n";
 
           if(
$modus == "unbuffered"$sql_error .= "<td width=\"86%\" class=\"bold b-r\">".$sql."</td>\n";
           else if(
$modus == "normal"$sql_error .= "<td width=\"86%\" class=\"b-r\">".$sql."</td>\n";
 
           
$sql_error .= "<td align=\"center\" class=\"b-r\" width=\"10%\">".$execute_time."</td>\n";
           
$sql_error .= "<td width=\"2%\" align=\"center\">".$this->affected_rows()."</td>\n";
           
$sql_error .= "</tr>\n";
           
$sql_error .= "</table>\n";
        }
  
        return 
$query_id;
        @
mysql_free_result($query_id);
      }

    
/** get microtime for query executing **/
    
function getmicrotime() {
        list(
$usec$sec) = explode(" "microtime());
        return ((float)
$usec + (float)$sec);
    }
    
}
 
/** Datebank connect starten **/
$db = new db($db_host,$db_user,$db_pass,$db_name);
?>
bekomme folgende Fehlermeldung:

Zitat:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'wwwrun'@'localhost' (using password: NO) in /www/htdocs/**/db.classtest.php on line 31

Warning: mysql_query() [function.mysql-query]: Access denied for user 'wwwrun'@'localhost' (using password: NO) in /www/htdocs/**/db.classtest.php on line 70

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /www/htdocs/**/db.classtest.php on line 70

Warning: mysql_select_db() [function.mysql-select-db]: Access denied for user 'wwwrun'@'localhost' (using password: NO) in /www/htdocs/**/db.classtest.php on line 40

Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /www/htdocs/**/db.classtest.php on line 40

Geändert von erxx (03.09.2008 um 18:19 Uhr)
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 03.09.2008, 19:22
Benutzerbild von fox
fox fox ist offline
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 11.09.2006
Beiträge: 1.008
fox sorgt für eine eindrucksvolle Atmosphärefox sorgt für eine eindrucksvolle Atmosphäre
Standard

Die Fehlermeldung sagt ja alles: Deine Zugangsdaten stimmen nicht.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 03.09.2008, 19:41
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 24.07.2008
Beiträge: 88
erxx befindet sich auf einem aufstrebenden Ast
Standard

Danke, aber die stimmen, da liegt ja das Problem.

Meine Vermutung ist, dass er die Variablen nicht erkennt... nur woran liegt das wohl
Mit Zitat antworten
  #4 (permalink)  
Alt 03.09.2008, 19:50
Benutzerbild von Curtains
(Schlafen||Programmieren)
XHTMLforum-Mitglied
 
Registriert seit: 27.08.2008
Beiträge: 198
Curtains befindet sich auf einem aufstrebenden Ast
Standard

Gemäss Fehlermeldung übergibst du kein Passwort.
Ist $db_pass definiert?
Mit Zitat antworten
  #5 (permalink)  
Alt 03.09.2008, 20:02
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 24.07.2008
Beiträge: 88
erxx befindet sich auf einem aufstrebenden Ast
Standard

Also,

Oben werden die Variablen gesetzt

PHP-Code:
$db = new db($db_host,$db_user,$db_pass,$db_name); 
ruft die function db() auf, diese legt die variablen fest und ruft die function init() auf

PHP-Code:
function db($server,$user,$pass,$db) {
      
$this->server $server;
      
$this->user $user;
      
$this->pass $pass;
      
$this->base $base;
 
      
$this->init();

init() versucht dann eine mysql verbindung folgendermaßen aufzubauen
PHP-Code:
mysql_connect($this->server,$this->user,$this->pass) or $this->sql_error("Datenbank-Server antwortet nicht.","DB-CONNECT"); 
und genau das klappt ja anscheinend nicht...

so wie ich das sehe sind die benutzerdaten gesetzt
Mit Zitat antworten
  #6 (permalink)  
Alt 03.09.2008, 20:06
Benutzerbild von fox
fox fox ist offline
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 11.09.2006
Beiträge: 1.008
fox sorgt für eine eindrucksvolle Atmosphärefox sorgt für eine eindrucksvolle Atmosphäre
Standard

PHP-Code:
$db = new db($db_host,$db_user,$db_pass,$db_name); 
Und wo genau werden diese Variablen definiert?
Was ergibt var_dump($db_host); etc...?
Mit Zitat antworten
  #7 (permalink)  
Alt 03.09.2008, 20:14
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 24.07.2008
Beiträge: 88
erxx befindet sich auf einem aufstrebenden Ast
Standard

NULL ergeben die.... grml


PHP-Code:
$this->server $server
      
$this->user $user
      
$this->pass $pass;
      
$this->base $base
Zitat:
/** vordefinierung der einzelnen class variablen **/
var $db_tab = array();
var $server = "localhost";
var $user = "blaa";
var $pass = "bla";
var $db = "bla";
var $querycounter = 0;
var $unbuffered = 0;
var $sql_error = '';
var $errormsg = '';
var $rows = 1;
var $parse_error = TRUE;

/** datenbank variablen festelgen und DB connect initialisieren **/
function db($server,$user,$pass,$base) {
$this->server = $server;
$this->user = $user;
$this->pass = $pass;
$this->base = $base;

$this->init();
}

/** Datenbank connect und DB-selectierung starten **/
function init() {
mysql_connect($this->server,$this->user,$this->pass) or $this->sql_error("Datenbank-Server antwortet nicht.","DB-CONNECT");

$this->query("SET NAMES `utf8` COLLATE `utf8_general_ci`");

$this->select_db($this->base);
}

Geändert von erxx (03.09.2008 um 20:49 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 03.09.2008, 20:45
Benutzerbild von mantiz
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.843
mantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz sein
Standard

Ändere
PHP-Code:
$db = new db($db_host,$db_user,$db_pass,$db_name); 
in
PHP-Code:
$db = new db("localhost","dein_username","dein_passwort","deine_datenbank"); 
Und nimm' die Werte aus der Klasse raus.

Geändert von mantiz (03.09.2008 um 20:51 Uhr) Grund: Login-Daten entfernt
Mit Zitat antworten
  #9 (permalink)  
Alt 03.09.2008, 20:58
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 24.07.2008
Beiträge: 88
erxx befindet sich auf einem aufstrebenden Ast
Standard

funktioniert, aber so gedacht war es nicht ^^ danke für deine antwort.

ist die andere vorgehensweise nicht moeglich oder wie ?
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 03.09.2008, 21:48
Benutzerbild von fox
fox fox ist offline
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 11.09.2006
Beiträge: 1.008
fox sorgt für eine eindrucksvolle Atmosphärefox sorgt für eine eindrucksvolle Atmosphäre
Standard

Natürlich kannst du auch die Variablen in der Klasse direkt speichern... dann musst du aber den Konstruktor ändern und darfst die Variablen nicht überschreiben
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP zu MySQL Verbindungs-Fehler markuskoehler Serveradministration und serverseitige Scripte 16 29.04.2009 21:00
Usermaps per PHP und MySQL? R4V3N Serveradministration und serverseitige Scripte 6 28.01.2009 10:33
Dateien auslagern - Include und PHP ArcVieh Serveradministration und serverseitige Scripte 17 27.03.2008 19:09
Buchempfehlung für PHP und MySQL Einstieg Crizzo Ressourcen 4 04.08.2007 20:57
Gute Bücher? (PHP, mySQL, AJAX, [Perl, C(#)]) psycho_dmr Offtopic 4 24.03.2006 15:24


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