na 3 webservers geinstaleerd te hebben en 1 online host , werkt de connectie naar mijn database nog niet

ik heb daarbij alle mogenlijke soorten passworden en hosten gebruikt .
in configs en in mijn code



de mysql / database error

Access denied for user 'Hier me usernaam'@'hiermehost' (using password: YES)






<?php
//Msql


class database {


//Define objcets
public $Username;
public $Password;
public $Database;
public $Host;


// Functions

//Connect

public function Connect(){

// Connect to database with user defined propertys
$Mysql_check = mysql_connect($this->Host,$this->Username,$this->Password);
// Select the database

if(!$Mysql_check){

die(mysql_error());

}


@mysql_select_db($this->Database,$Mysql_check) or die("Unable to select ".$this->Database."");



mysql_close();

}

// Get information from database
public function Getinformation(){

// Select table
$result = mysql_query("SELECT naam,leeftijd FROM showpost ");
if(!$result){

echo 'Could not run query: ' . mysql_error();
exit;

}

$ROW = mysql_fetch_assoc($result);

echo $ROW['naam'];
echo $ROW['leeftijd'];
}







// Inaert information

// Set data
public function Setdata($Username,$Database,$Password,$Host){

$this->Username = $Username;
$this->Database = $Database;
$this->Password = $Password;
$this->Host = $Host;

}
// Get data

public function Getdata(){

return $this->Username;
return $this->Database;
return $this->Password;
return $this->Host;



}


}
// Show post
class Showpost {

// define objects
public $Cname;
public $Idatum;
public $Cmessage;


// Functions
public function Show() {

// Opzet van de post laten zien
}

// Setdata

public function Setdata($Cname,$Idatum,$Cmessage) {

// Declare
$this->Cname = $Cname;
$this->Idatum = $Idatum;
$this->Cmessage = $Cmessage;


}

// Getdate

public function Getdata(){

// Return data

return $this->Cname;
return $this->Idatum;
return $this->Cmessage;

}



}








$Database = new database();

// user passs database host
$Database->Setdata('user','database','password','host');
$Database->Connect();
$Database->Getinformation();







?>

Dem Ian op 29/12/2011 14:42:43

@ Joy, een database connectie kan ik wel maken hoor.

En ik heb niet veel ervaring met Php.
Ik ben er alleen mee bezig in de vakantie als ik tijd heb.


ok prima hoor , maar was eigenlijk meer een reactie op of apache op dezelfde server stond :)


[size=xsmall]Toevoeging op 29/12/2011 14:45:33:[/size]

- SanThe - op 29/12/2011 14:43:44

Tja.
Dan heb je misschien ergens tijdens het instellen van de naam en password in de mysql server een typo gemaakt ofzo. Stel mysql server naam en password eens opnieuw in en kijk dan of het inloggen via php misschien weer lukt.


hier ben ik dus 2 dagen mee bezig geweest het instellen van het password username ect .
met 3 verschillende servers . en blijf deze melding krijgen .
ik zal toch maar weer eens alles na checken . maar er staat dus geen overduidenlijke fout in de code waardoor het fout kan gaan ?

[size=xsmall]Toevoeging op 29/12/2011 14:50:41:[/size]

Erwin H op 29/12/2011 13:05:59

Het lost je probleem waarschijnlijk niet op... maar toch twee opmerkingen:
1)
<?php
    public $Username;
    public $Password;
    public $Database;
    public $Host;
?>

Deze hoeven natuurlijk niet public te zijn. Sterker, zou ik nooit doen. Je hebt een set en get methode waarmeee ze zijn uit te lezen en op te geven. De variabelen zelf kunnen dus lekker private zijn.

2)
<?php
        return $this->Username;
        return $this->Database;
        return $this->Password;
        return $this->Host;
?>

Dit gaat zo nooit werken. "return" geeft de waarde van de variabele erachter terug aan de aanroepende functie en stopt daarna de executie van de functie. De eerste return zal dus de username teruggeven, de rest wordt niet uitgevoerd.




Toch krijg ik wel waarde terug als ik ze echo
Over jouw bovenstaande code kan ik niks zeggen, ik heb geen ervaring met classes.
Job Brusselers
Toch krijg ik wel waarde terug als ik ze echo

Ja, je krijgt alleen $this->Username terug. Want na 1 return wordt de executie gestopt, dus PHP zal nooit de laatste 3 returns lezen.
Je kan het in een array zetten en die returnen, maar volgens OO regels kun je beter een getter per var maken of gebruik maken van de Magic Method _get:

<?php
    class Database
    {
      protected $host;
      protected $user;
      protected $pass;
      protected $table;
      
      protected $db;
      
      public function __construct( $host, $user, $pass, $table )
      {
        $this->host = (string) $host;
        $this->user = (string) $user;
        $this->pass = (string) $pass;
        $this->table = (string) $table;
        
        $this->db = mysql_connect($host, $user, $pass);
        if( $this->db === false )
        {
          throw new Exception("We couldn't connect to a server");
        }
        else
        {
          if( mysql_select_db($table, $this->db) === false )
          {
            throw new Exception("We couldn't select a database");
          }
        }
      }
      
      // Voor elke propertie een getter
      public function getUser()
      {
        return $this->user;
      }
      public function getPass()
      {
        return $this->pass;
      }
      // ect....
      
      // Een array returnen
      public function getData()
      {
        $data = Array(
          ['host'] => $this->host,
          ['user'] => $this->user,
          ['pass'] => $this->pass,
          ['table'] => $this->table
        );
        return $data;
      }
      
      // Magic Method __get
      public function __get( $varName )
      {
        return $this->$varName;
      }
    }
    
    try
    {
      $db = new Database('localhost', 'username', 'password', 'Tabelnaam');
      
      echo $db->getUser(); // 'username'
      echo $db->getData(); // Array( [host] => 'localhost', [user] => 'username', [pass] => 'password', [table] => 'Tabelnaam' );
      echo $db->user; // 'username' (de Magic Method __get wordt aangeroepen)
    }
    catch( Exception $e )
    {
      echo 'Er is een fout opgetreden: '.$e->getMessage;
    }
?>
Joy brusselers op 29/12/2011 14:43:49
Toch krijg ik wel waarde terug als ik ze echo

Right.... alle vier wil je beweren? Zoals ik zei (en bevestigd door Wouter), je krijgt de eerste terug, maar niet alle vier. Ga maar eens proberen.

Access denied for user 'Hier me usernaam'@'hiermehost' (using password: YES)
Wat heb je gedaan om 'Hier me usernaam' te autoriseren op MySQL op host 'hiermehost'??
De melding Access denied is duidelijk, je moet deze user nog even access granten. Hoe moeilijk kan het zijn? ik heb daarbij alle mogenlijke soorten passworden en hosten gebruikt Is trial-on-error gedoe en lost niks op...
Dankzij wouter j ben ik nu verder , alleen krijg nu een andere error . denk dat het aan de server ligt ...

Lost connection to MySQL server during query




Hier nogmaals de code

<?php
//Msql


class database {


//Define objcets
private $Username;
private $Password;
private $Database;
private $Host;


// Functions

//Connect

public function Connect($Username,$Password,$Database,$Host){
// setters

$this->Username = $Username;
$this->Password = $Password;
$this->Database = $Database;
$this->Host = $Host;

// Connect to database with user defined propertys
$Mysql_check = mysql_connect($this->Host,$this->Username,$this->Password);
// Select the database

if(!$Mysql_check){

die(mysql_error());

}


@mysql_select_db($this->Database,$Mysql_check) or die("Unable to select ".$this->Database."");

mysql_close();



}

// Get information from database
public function Getinformation(){

// Select table
$result = mysql_query("SELECT naam,leeftijd FROM showpost ");
if(!$result){

echo 'Could not run query: ' . mysql_error();
exit;

}

$ROW = mysql_fetch_assoc($result);

echo $ROW['naam'];
echo $ROW['leeftijd'];
}




// single getters
public function GetUsername(){

return $this->Username;


}

public function GetPassword(){

return $this->Password;


}


public function GetDatabase(){

return $this->Database;


}

public function GetHost(){

return $this->Host;


}




}
// Show post
class Showpost {

// define objects
public $Cname;
public $Idatum;
public $Cmessage;


// Functions
public function Show() {

// Opzet van de post laten zien
}

// Setdata

public function __construct($Cname,$Idatum,$Cmessage) {

// Declare
$this->Cname = $Cname;
$this->Idatum = $Idatum;
$this->Cmessage = $Cmessage;


}

// Getdate

public function GetCname(){

// Return data

return $this->Cname;


}


public function GetIdatum(){

// Return data

return $this->Idatum;


}


public function GetCmessage(){

// Return data

return $this->Cmessage;


}


}









$Database = new database();

// user passs database host
$Database->Connect('test','test','test','test');
$Database->Getinformation();





?>
[color=#f00]Haal je inlog gegevens weg en verander die, want het staat nu al een tijdje op het internet[/color]

Gebruik nooit echo's in functies (behalve in view functies). Altijd return want een functie bepaald niet hoe het resultaat getoond wordt, dat bepaald de view functie.
Gebruik geen die of exit, maar handel het script netjes af. Of zoals onze beste man Karl altijd zei: 'Jij gaat ook niet dood als je een fout maakt.'

Haal ook even die foutonderdrukking weg (alle @)

Je maakt in de Connect functie connectie en meteen daarna gebruik je [php]mysql_close[/php], wat klopt daar niet aan? Tevens is mysql_close onzinnig en hoef je het nooit te gebruiken.
dankje , ja had meteen de login gegevens gezien en verwijderd

Reageren