Übernahme von Website - Keine Verbindung zur Datenbank

zyclop

Erfahrenes Mitglied
Hallo zusammen

Ich habe von einem Bekannten eine CD erhalten und hab dem das Hosting eingerichtet und dachte dass die Seite schnell übernommen sei. Nun habe ich die Daten raufgeladen die DB reinkopiert und siehe da, alles funktioniert. Bis auf...die Events. Diese werden nicht korrekt angezeigt.

Nach meinen eigenen Forschungen, ist die DB.php dafür verantwortlich. In dieser finde ich folgendes:

PHP:
<?php
//this is an include file


///////////////////////////////////////////////////////////////////////////////
//Datenbankverbindung
//wird verwendet, um Befehle an die MySql-Datenbank lukas auf localhost
//zu senden.
///////////////////////////////////////////////////////////////////////////////
class DB
{
	//Datenbankidentifikator
	var $dbHandle;


	///////////////////////////////////////////////////////////////////////////////
	//Konstruktor
	function DB()
	{
	}

	///////////////////////////////////////////////////////////////////////////////
	//Verbindung mit Datenbank aufbauen und Datenbank auswaehlen.
	function connect()
	{
	 if ($_SERVER['HTTP_HOST'] == "marvin") { $pw=""; $db="usr_web56_1"; } else { $pw = "meinpasswort"; $db="web56"; }

		$this->dbHandle = mysql_pconnect("localhost", $db, $pw)
		 						or die ("DB-Connetion failed");

		$db_selected = mysql_select_db($db, $this->dbHandle);
		if(!$db_selected)
		{
			$this->error("Kann db nicht benutzen :" . mysql_error());
		}

	}

	///////////////////////////////////////////////////////////////////////////////
	//Eine SQL-QUERY an die Datenbank senden.
	function send($queryString)
	{
		$this->connect();
		$result = mysql_query($queryString, $this->dbHandle);
		if (!$result) {
  		$this->error("Invalid query: " . mysql_error());
		}
		return $result;
	}

	///////////////////////////////////////////////////////////////////////////////
	//MySql Fehlermeldung ausgeben
	function getMySqlErrStr()
	{
		return mysql_error($this->dbHandle);
	}

	///////////////////////////////////////////////////////////////////////////////
	//Fehlermeldung erzeugen.
	//Die Fehlermeldung wird an die Instanz-Variable $errStr angehaengt. Dieser
	//kann mittels getErrStr() abgerufen werden.
	function error($text)
	{
		echo $text . "<br/>\n";
	}
}

?>

Ich habe alles angepasst. Jedoch erscheint nun auf der Website (unter Events) http://goo.gl/XX7Zr folgende Meldung:

Code:
 Kann db nicht benutzen :Access denied for user 'web56'@'localhost' to database 'web56'
Invalid query: No database selected

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/web56/html/class/EventManager.php on line 173

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/web56/html/class/EventManager.php on line 175

Nun denk ich mir dass PW ist falsch oder der User. Alles kontrolliert und neu erstellt. An dem liegt es nicht. Denn wenn ich das PW ändere auf ein PW das nicht korrekt ist, dann erhalte ich folgende Meldung:

Code:
Warning: mysql_pconnect() [function.mysql-pconnect]: Access denied for user 'web56'@'localhost' (using password: YES) in /var/www/web56/html/class/DB.php on line 28
DB-Connetion failed

Hat jemand eine Ahnung was ich falsch mache?

Hier die Angaben:

DB USER: web56
DB: usr_web56_1
PW: mein Passwort das ich mehrmals kontrolliert habe

Wäre über jede Hilfe/Tipp froh.

Besten Dank
Enrik Berisha
 
Die Fehlermeldung bedeutet, dass es die gewählte Datenbank nicht gibt bzw. der Benutzer keinen Zugriff auf diese Datenbank hat.
 
Verstehe ich das richtig das die Seite jetzt bei einem anderen Provider gehostet wird?

Und was verstehst du unter: "...die DB reinkopiert..."?

Wenn es ein neuer Provider ist, dann schau mal nach ob du "localhost" angeben kannst, damit hatte ich auch mal ein Problem.
 
Vielen Dank für die rasche Antwort. DB reinkopiert heisst: Ich hatte die alte DB als sql Datei erhalten. Diese habe ich dann importiert. Localhost funktioniert. Und ja, es war ein Provider wechsel.
 
Du hast in der Variablen $db den Usernamen gespeichert und gibst diesen beim Auswählen der Datenbank als DB-Namen an. Ist das so richtig?

DB USER: web56
DB: usr_web56_1

PHP:
if ($_SERVER['HTTP_HOST'] == "marvin") { $pw=""; $db="usr_web56_1"; } else { $pw = "meinpasswort"; $db="web56"; }

weiter unten kommt dann

PHP:
mysql_select_db($db, $this->dbHandle)

und da hat $db den Usernamen, es wird aber der Name der Datenbank verlangt.
 
Zuletzt bearbeitet:
Wenn ich das mache erhalte ich folgendes:

Warning: mysql_pconnect() [function.mysql-pconnect]: Access denied for user 'usr_web56_1'@'localhost' (using password: YES) in /var/www/web56/html/class/DB.php on line 28
DB-Connetion failed
 
Hast du für den Usernamen jetzt eine eigene Variable eingesetzt? Nicht das du da doch was durcheinander bringst.
Kann ja eigentlich nur daran liegen das die Zugangsdaten falsch verwendet werden.

Unterstützt der Provider persistense Verbindungen?

Zitat von php.net:

Hinweis:

Beachten Sie, dass diese Art der Verbindung nur funktioniert. wenn Sie PHP als Modul-Version benutzen. Für mehr Informationen schauen Sie unter Persistente Datenbankverbindungen nach.
 
Wenn ich das mache erhalte ich folgendes:

Warning: mysql_pconnect() [function.mysql-pconnect]: Access denied for user 'usr_web56_1'@'localhost' (using password: YES) in /var/www/web56/html/class/DB.php on line 28
DB-Connetion failed

Außerdem wird hier der User "usr_web56_1" beanstandet. Oben steht aber das so der Name der Datenbank ist, der User heißt doch nur "web56".

DB USER: web56
DB: usr_web56_1
PW: mein Passwort das ich mehrmals kontrolliert habe
 
if ($_SERVER['HTTP_HOST'] == "marvin") { $pw=""; $db="web56"; } else { $pw = "meinpasswort"; $db="usr_web56_1"; }

Hab ich jetzt versucht.

Aber funktioniert auch nicht:

Warning: mysql_pconnect() [function.mysql-pconnect]: Access denied for user 'usr_web56_1'@'localhost' (using password: YES) in /var/www/web56/html/class/DB.php on line 28
DB-Connetion failed

Die Anfrage wegen dem Persistente DB ist noch offen beim Hoster. Würde mich Intressieren ob das auf einem anderen Webserver funktionieren würde.
 
Zurück