Hallo Forum,
Ich habe eine Klasse geschrieben die mit einer MySQL Datenbank kommuniziert. Nun habe ich eine Variable erstellt (die als Variable der Klasse erzeugt wird) die definiert ist als Präfix und dann den Variablenamen: ($db->user = $table_prefix . 'users'). Das funktioniert soweit auch ganz gut, wenn die Variable nicht in einer anderen Funktion (ich meine nicht einer Methode der Klasse) abgerufen wird.
Wie kann ich $db->user trotzdem in der Funktion gebrauchen?
Hier mein stark vereinfachter Code:
/*
* includes.php:
*/
include 'functions.php';
include 'config.php'; // in der $table_prefix und die DB_[...] Konstanten sind
$db->user = $table_prefix . 'users';
function login_right($username, $pwd) {
$username = strtolower($username);
$sql = "SELECT COUNT(*) as Anzahl FROM $db->user
WHERE
username = LOWER('".$username."') AND
password = MD5('".$pwd."');"; // in dieser Abfrage ist $db->user
$checklogin = new db($sql);
$row = $checklogin->fetch();
return $row['Anzahl'];
}
login_right("Lupus", "mypassword");
// Fehlermeldungen:
// - Undefined variable: db...
// - Trying to get property of non-object...
/*
* functions.php:
*/
class db {
var $_sql = "";
var $_result = 0;
var $_error = "";
// hier public user = ""; geht auch nicht...
function db($var) {
$this->_sql = trim($sql);
$this->_result = mysql_query($this->_sql);
if(!$this->_result) {
$this->_error = mysql_error();
$this->error();
}
}
function open() {
@mysql_connect(DB_HOST, DB_USER, DB_PASS) OR die(mysql_error());
mysql_select_db(DB_DATABASE) OR die(mysql_error());
}
function error() {
die($this->_error);
}
function fetch() {
return mysql_fetch_assoc($this->_result);
}
}
Vielen Danke für Hilfe,
Lupus