keine Verbindung zur Datenbank

illuminatus26

Erfahrenes Mitglied
Datei: abfrage.php

PHP:
<?php

$sql = 'SELECT * FROM `test__nutzer` WHERE id = 2';

?>

Datei: verbindungsdaten.php

PHP:
<?php

$db_user = "xxx";
$db_pass = "xxx";
$db_host = "localhost";
$db = "test";

?>

Datei: datenbankverbindung.php

PHP:
<?php

error_reporting(E_ALL);

include("verbindungsdaten.php");
include("abfrage.php");

class Datenbankverbindung {

var $db_host; // Hostname
var $db; // Datenbankname
var $db_user; // Username
var $db_pass; // Passwort
var $sql;
var $res_id;
var $test;

	function Datenbankverbindung () {  
	
			echo $this->db;
		
			
			if($this->res_id = mysql_connect($this->db_host, $this->db_user, $this->db_pass))
				{
					echo "<br>Es wurde erfolgreich zur Datenbank verbunden <br>";
				}

			else
				{
					echo '<br>Fehler-Nr. ' . mysql_errno() . ' - ' . mysql_error();
					die("<br>Fehler! : Es konnte nicht zur Datenbank verbunden werden<br>");
				}
		
		echo $this->db;
			//function datenbank_auswählen () {
				
				
				if(mysql_select_db($this->db))
					{
						echo "<br>Es wurde die Datenbank: ".$this->db." ausgewählt.<br>"; 
					}
	
				else
					{
						echo '<br>Fehler-Nr. ' . mysql_errno() . ' - ' . mysql_error();
						die("<br>Fehler! : Die Datenbank: ".$this->db." existiert nicht.<br>");
					}
				
				//} // schliesst datenbank_auswählen
				
			
			//function abfrage_senden () {
			
				if(mysql_db_query($this->db, $this->sql, $this->res_id))
					{
						echo "Abfrage wurde gesendet <br>";
					}
					
				else
					{
						echo "Abfrage wurde nicht gesendet <br>";
					}
				} // schliesst abfrage_senden
				
				
	
	} // schliesst Konstruktor

Datei: test.php

PHP:
<?php

include("abfrage.php");
include("datenbankverbindung.php");

echo $sql."<br>";
echo $db."<br>";


$neueverbindung = new Datenbankverbindung();
//$neueverbindung -> daten_ausgeben();

						

?>

Dabei erhalte ich folgendes Ergebnis.

SELECT * FROM `test__nutzer` WHERE id = 2
test

Es wurde erfolgreich zur Datenbank verbunden

Fehler-Nr. 1046 - No database selected
Fehler! : Die Datenbank: existiert nicht.

Jetzt ist die Frage, warum der die Dtanebank nicht ausgewählt wird. Die Variabel hat ja einen Wert.
Weiss jemand die Lösung
 
Nun wenn du deine Scripts genau so aufrufst kann das denke ich nicht gehen.
Versuche mal
PHP:
error_reporting(E_ALL); 

include("verbindungsdaten.php"); 
include("abfrage.php"); 

class Datenbankverbindung { 


var $db_user = "xxx"; 
var $db_pass = "xxx"; 
var $db_host = "localhost"; 
var $db = "test"; 
var $sql; 
var $res_id; 
var $test; 

    function Datenbankverbindung ($sql) {   
     
            echo $this->db; 
         
             
            if($this->res_id = mysql_connect($this->db_host, $this->db_user, $this->db_pass)) 
                { 
                    echo "<br>Es wurde erfolgreich zur Datenbank verbunden <br>"; 
                } 

            else 
                { 
                    echo '<br>Fehler-Nr. ' . mysql_errno() . ' - ' . mysql_error(); 
                    die("<br>Fehler! : Es konnte nicht zur Datenbank verbunden werden<br>"); 
                } 
         
        echo $this->db; 
            //function datenbank_auswählen () { 
                 
                 
                if(mysql_select_db($this->db)) 
                    { 
                        echo "<br>Es wurde die Datenbank: ".$this->db." ausgewählt.<br>";  
                    } 
     
                else 
                    { 
                        echo '<br>Fehler-Nr. ' . mysql_errno() . ' - ' . mysql_error(); 
                        die("<br>Fehler! : Die Datenbank: ".$this->db." existiert nicht.<br>"); 
                    } 
                 
                //} // schliesst datenbank_auswählen 
                 
             
            //function abfrage_senden () { 
             
                if(mysql_db_query($this->db, $sql, $this->res_id)) 
                    { 
                        echo "Abfrage wurde gesendet <br>"; 
                    } 
                     
                else 
                    { 
                        echo "Abfrage wurde nicht gesendet <br>"; 
                    } 
                } // schliesst abfrage_senden 
                 
                 
     
    } // schliesst Konstruktor

Da du innerhalb deiner Klasse die Variablen aus deiner include("verbindungsdaten.php"); nicht zur Verfügung hast, kann das nicht gehen
 
Zuletzt bearbeitet:
DerBär hat gesagt.:
Da du innerhalb deiner Klasse die Variablen aus deiner include("verbindungsdaten.php"); nicht zur Verfügung hast, kann das nicht gehen

Ok......
Dein Tip hat funktioniert.
Die Frage ist jetzt nur, wie ich die Variablen aus meiner Datei "verbindungsdaten.php" in die Klasse bekomme.
Geht das überhaupt?
Muss ich vielleicht oder kann ich die Daten mit POST oder nem COOKIE oder sonst irgendetwas übergeben?
 
Nun da mußt du deine Klasse ein wenig umbauen.
Du kannst deine verbindungsdaten.php zb so ändern

PHP:
$connect=array('db_user'=>'xxx','db_pass'=>'xxx','db_host'=>'localhost','db'=>'test');

Und in deiner Klasse machst du folgendes
PHP:
error_reporting(E_ALL);  


 

class Datenbankverbindung {  



var $res_id;  


    function Datenbankverbindung ($sql,$connect) {    
      
            echo $this->db;  
          
              
            if($this->res_id = mysql_connect($connect['db_host'], $connect['db_user'], $connect['db_pass']))  
                {  
                    echo "<br>Es wurde erfolgreich zur Datenbank verbunden <br>";  
                }  

            else  
                {  
                    echo '<br>Fehler-Nr. ' . mysql_errno() . ' - ' . mysql_error();  
                    die("<br>Fehler! : Es konnte nicht zur Datenbank verbunden werden<br>");  
                }  
          
        echo $this->db;  
            //function datenbank_auswählen () {  
                  
                  
                if(mysql_select_db($connect['db'],$this->res_id))  
                    {  
                        echo "<br>Es wurde die Datenbank: ".$connect['db']." ausgewählt.<br>";   
                    }  
      
                else  
                    {  
                        echo '<br>Fehler-Nr. ' . mysql_errno() . ' - ' . mysql_error();  
                        die("<br>Fehler! : Die Datenbank: ".$this->db." existiert nicht.<br>");  
                    }  
                  
                //} // schliesst datenbank_auswählen  
                  
              
            //function abfrage_senden () {  
              
                if($res=mysql_db_query($this->db, $sql, $this->res_id))  
                    {  
                        echo "Abfrage wurde gesendet <br>";  
                       return $ress;
                    }  
                      
                else  
                    {  
                        echo "Abfrage wurde nicht gesendet <br>";  
                    }  
                } // schliesst abfrage_senden  
                  
                  
      
    } // schliesst Konstruktor

Und jetzt kannst Du das ganze so aufrufen

PHP:
include("abfrage.php"); 
include("verbindungsdaten.php");  
include("datenbankverbindung.php"); 

$abfrage = new Datenbankverbindung($sql,$connect);
 
Zurück