also ich wage mich so nach und nach an oop bei php ran und hab jetzt folgendes konstrukt:
<?php
require_once("includes/helperfunctions.inc.php");
require_once("includes/db.config.inc.php");
class userprofile{
private $user_id;
private $user_username;
private $user_name;
private $user_vorname;
private $user_email;
private $user_gebtag;
private $user_wohnort;
private $user_bildpfad;
private $user_adresse;
private $user_interessen;
private $user_hobbies;
private $user_last_ip;
private $user_lastLogin;
function userprofile($id){
// Neues Datenbank-Objekt erzeugen
$db = @new mysqli( $dbserver, $dbuser, $dbpassword, $dbscheme );
// Pruefen ob die Datenbankverbindung hergestellt werden konnte
if (mysqli_connect_errno() == 0){
$sql = "SELECT id, username, name, vorname, email, gebtag, wohnort, bildpfad, adresse, interessen, hobbies, last_ip, last_login FROM dbna_users where id = ".$db->real_escape_string($id).";";
$ergebnis = $db->query( $sql );
// Ergebnisse ausgeben
while ($zeile = $ergebnis->fetch_object()){
$this->user_id = $zeile->id ;
$this->user_username = $zeile->username;
$this->user_name = $zeile->name;
$this->user_vorname = $zeile->vorname;
$this->user_email = $zeile->email;
$this->user_gebtag = mysql2date($zeile->gebtag);
$this->user_wohnort = $zeile->wohnort;
$this->user_bildpfad = $zeile->bildpfad;
$this->user_adresse = $zeile->adresse;
$this->user_interessen = $zeile->interessen;
$this->user_hobbies = $zeile->hobbies ;
$this->user_last_ip = $zeile->last_ip;
$this->user_lastLogin = $zeile->last_login;
}
// Resourcen freigeben
$ergebnis->close();
}
else{
// Es konnte keine Datenbankverbindung aufgebaut werden
echo 'Die Datenbank konnte nicht erreicht werden. Folgender Fehler trat auf: <span class="hinweis">' .mysqli_connect_errno(). ' : ' .mysqli_connect_error(). '</span>';
}
// Datenbankverbindung schliessen
$db->close();
}
function getUsername(){
return $this->user_username;
}
}
?>
Alles anzeigen
das ganze mit direkten paramtern aufgerufen funktioniert, aber sobald ich ne db.config.inc.php einbaue, sei es mit require_once oder include klappts net..
db.config.inc.php:
<?php
$dbserver = 'localhost';
$dbuser = 'root';
$dbpassword = 'pillepalle';
$dbscheme = 'palleschema';
?>
dann hab ich den aufruf der ganzen klasse:
<?php
error_reporting(E_ALL);
include("class.userprofile.php");
$userprofile = new userprofile($_REQUEST['id']);
?>
<div id="profilewrap">
<hr />
username via methode: <?php echo $userprofile->getUsername(); ?>
</div>
die meldung die ich so bekomme is dann:
Zitat
Die Datenbank konnte nicht erreicht werden. Folgender Fehler trat auf: 1045 : Access denied for user 'ODBC'@'localhost' (using password: NO)
Warning: mysqli::close() [mysqli.close]: Couldn't fetch mysqli in C:\xampp\htdocs\dbna\class.userprofile.php on line 54
es muss doch ne möglichkeit geben mit der ich die verbindungsdaten zur db auslagern kann...
oder sollte ich dahergehen, wie bei java und mit nem singleton agieren und das ganze wieder in ne eigene klasse stubben?
an sich dachte ich ja mysqli is damit man sich eigene klassen ersparen kann..
edit: dank grevas gedächtnisstütze klappt es.. des include für die db muss im konstruktor von der class aufgerufen werden, direkt vorm new mysqli(), dann fruchtet des
danke grevas
php is eben keine hochsprache