Fehler beim Verbindungsaufbau

Alles, was PHP betrifft, kann hier besprochen werden.

Fehler beim Verbindungsaufbau

Postby Dreknor » 28. March 2007 06:29

Ich habe das Problem, dass ich immer folgenden Fehler bekomme, wenn ich versuche auf die Db zuzugreifen:

Code: Select all
{connect} Database Error: 1045 : Access denied for user 'ODBC'@'localhost' (using password: YES)


Benutzername und Passwort stimmen, das habe ich mehrfach überprüft.

Komischerweise kann ich aber mit phpmyadmin ganz normal arbeiten.


Wo liegt da der Fehler?
Dreknor
 
Posts: 9
Joined: 28. March 2007 05:59

Postby Wiedmann » 28. March 2007 09:19

wenn ich versuche auf die Db zuzugreifen:

Mit
- was
- wo
- wie
machst du den Zugriff?
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Dreknor » 28. March 2007 12:30

von einem Php-script.

Aber ich bekomme auch mit der Zend Development Enviroment keine Verbindung mehr zur Datenbank.

Ich habe auch eine Neuinstallation versucht, hab nochmal die ODBC-Treiber installiert, aber nichts hat bis jetzt geholfen.
Dreknor
 
Posts: 9
Joined: 28. March 2007 05:59

Postby Wiedmann » 28. March 2007 18:49

von einem Php-script.

Dann hast du es wohl unterlassen, die Parameter zu benutzen, welche dir die Funktion mysql_connect() bietet.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Dreknor » 31. March 2007 10:33

Code: Select all
$Connection = new mysqlconnection();

class mysqlconnection{
   
    var $host = dbHost;
    var $database = db;
    var $db_username = dbUser;
    var $db_pass = dbPass;
    var $db_port = dbPort;

   function connect(){
      $this->connection = @mysql_pconnect($this->host.':'.$this->db_port, $this->db_user, $this->db_pass) or die("{connect} Database Error: ".mysql_errno()." : ".mysql_error());
      $this->select_database = @ mysql_select_db($this->database, $this->connection) or die("{select_db} Database Error: ".mysql_errno()." : ".mysql_error());

      # $this->select_database;
   }

   function mysqlclose()
   {
      $this->connection = mysql_close();
   }

   function query($querystring){
      if ($this->connection == false) $this->connect();
      if ($this->connection == false) return;
      $res =  @mysql_query($querystring, $this->connection) or die("{query} Database Error : ".mysql_errno()." : ".mysql_error());
      return $res;
   }

}


Dies ist meine DB-Klasse und folgendes einer der Aufrufe:

Code: Select all
$Insel=$Connection->query("SELECT * FROM `inseln` where `Aktualisierung` <= '$Zeit'");



Was mich wundert ist, dass auch Zend IDE keinen Zugriff auf die DB mehr bekommt. Dort habe ich an den Einstellungen nichts geändert
Dreknor
 
Posts: 9
Joined: 28. March 2007 05:59

Postby Wiedmann » 31. March 2007 15:47

a) Deine Properties (Class-Variablen) willst du wohl mit Strings initialisieren und nicht mit Konstanten? --> es fehlen die Quotes.
b) du greifst auf ein nicht definiertes Property "connection" zu.
c) man sollte mysql_connect() und nicht mysql_pconnect() nehmen.
d) du greifst auf ein nicht vorhandes Property "db_user" zu.
e) du greifst auf ein nicht vorhandes Property "select_database" zu.

Du solltest unbedingt ein "error_reporting(E_ALL);" beim Entwickeln/Testen von Scripten benutzen.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Dreknor » 31. March 2007 16:08

zu d) und e)

die liegen in einer Config-Datei und werden per include eingebunden.

a) und b) ??? sagen mir leider nix

c) wird geändert.

Aber liegt daran der fehlende Verbindungsaufbau?

Ich habe nun einmal meine komplette xampp-Installation vom 2t Rechner rüber kopiert. Dort läuft alles. Nur auf meinem Rechner leider wieder nicht :-(
Dreknor
 
Posts: 9
Joined: 28. March 2007 05:59

Postby Wiedmann » 31. March 2007 16:42

zu d) und e)
die liegen in einer Config-Datei und werden per include eingebunden.

a) sehe ich hier kein include
b) könntest du die Class-Definition eh nicht durch ein include() unterbrechen
--> da du mit $this auf das Property zugreifst, musst du dieses schon in dieser Class definieren.


a) und b) ??? sagen mir leider nix

z.B.:
Code: Select all
var $host = dbHost;

Hast du dbHost als Konstante im Script definiert?
--> define('dbHost', 'foo');

wenn nein, muss diese Zeile so aussehen:
Code: Select all
var $host = 'dbHost';


Punkt b) ist das Selbe wie d) und e).
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Dreknor » 31. March 2007 21:04

Die include Zeile hatte ich vergessen mit zu kopieren, sry.

Dort steht folgendes:

Code: Select all
$host = "localhost"; // MySQL Hostname
$database = "test"; // MySQL Database
$db_username = "root"; // MySQL Username
$db_pass = ""; // MySQL Password
$db_port = ""; // Port der Datenbank - kann leer gelassen werden, default 3306


@define(dbHost, $host);
@define(db, $database);
@define(dbUser, $db_username);
@define(dbPass, $db_pass);
@define(dbPort, $db_port);


Dreknor
 
Posts: 9
Joined: 28. March 2007 05:59

Postby Wiedmann » 31. March 2007 21:25

Mal eine Frage:
Dieses hattest du gelesen und als allererstes mal beherzigt?
Wiedmann wrote:Du solltest unbedingt ein "error_reporting(E_ALL);" beim Entwickeln/Testen von Scripten benutzen.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Dreknor » 01. April 2007 06:47

Code: Select all
error_reporting  =  E_ALL & ~E_NOTICE


So steht es in der php.ini und müsste ja das sein, was du meinst oder?
Dreknor
 
Posts: 9
Joined: 28. March 2007 05:59

Postby Wiedmann » 01. April 2007 11:32

und müsste ja das sein, was du meinst oder?

Nein, was kommt bei folgendem PHP-script heraus wenn man es ausführt?
Code: Select all
<?php var_dump('E_ALL & ~E_NOTICE' == 'E_ALL'); ?>


BTW ist error_reporting(), in der Form wie von mir gepostet, auch eine PHP-Funktion.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Dreknor » 01. April 2007 12:25

Wiedmann wrote:
und müsste ja das sein, was du meinst oder?

Nein, was kommt bei folgendem PHP-script heraus wenn man es ausführt?
Code: Select all
<?php var_dump('E_ALL & ~E_NOTICE' == 'E_ALL'); ?>


BTW ist error_reporting(), in der Form wie von mir gepostet, auch eine PHP-Funktion.


bool(false)
Dreknor
 
Posts: 9
Joined: 28. March 2007 05:59

Postby Dreknor » 03. April 2007 07:01

Keiner eine Idee, was ich noch versuchen kann?

Hab heut mal verschiedene Scripts durch getestet und immer wieder scheitere ich an dieser Fehlermeldung.

PHPmyAdmin funktioniert aber
Dreknor
 
Posts: 9
Joined: 28. March 2007 05:59

Postby moinmoin666 » 03. April 2007 12:25

kann es sein, das deine DB garnicht exestiert?
moinmoin666
 
Posts: 30
Joined: 29. May 2006 22:53

Next

Return to PHP

Who is online

Users browsing this forum: No registered users and 7 guests