Hallo @all,
Ich versuche gerade mir eine eigene Datenbankzugriffsklasse zu basteln. Das Ganze funktioniert bis zum Connect auch ganz toll. Nur sobald ich versuche das Statement selber auszuführen, passiert nichts mehr:
PHP-Code:
class DBAccess
{
// Klassen – Eigenschaften
private $c_sDB_Server = "";
private $c_sDB_Name = "";
private $c_sDB_User = "";
private $c_sDB_Password = "";
private $c_bConnected = false;
// Set-Methoden
public function SetDB_Server( $p_sDB_Server )
{
$c_sDB_Server = $p_sDB_Server;
}
public function SetDB_Name( $p_sDB_Name )
{
$c_sDB_Name = $p_sDB_Name;
}
public function SetDB_User( $p_sDB_User )
{
$c_sDB_User = $p_sDB_User;
}
public function SetDB_Password( $p_sDB_Password )
{
$c_sDB_Password = $p_sDB_Password;
}
// Klassen – Methoden
public function Connect()
{
@$oDB = new mysqli($p_sDB_Server, $p_sDB_User, $p_sDB_Password, $p_sDB_Name);
if (mysqli_connect_errno())
{
printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
return false;
}
else
{
$c_bConnected = true;
echo "Verbindung erfolgreich: " . $oDB->host_info . "\n</br>";
echo "Server: " . $oDB->server_info;
return $oDB;
}
}
public function Disconnect($p_oDB)
{
if ( $c_bConnected )
{
$p_oDB->close();
$c_bConnected = false;
}
}
public function ExecuteSQLSelect($p_oDB, $p_sStatement)
{
if ( $p_oDB )
{
if ($oResult = $p_oDB->query($p_sStatement))
{
return $oResult;
}
}
}
}
Das Problem scheint IMHO in der Rückgabe von $g_oResult zu liegen, bzw. in der Übergabe der Parameter in die Funktion ExecuteSQLSelect. Vielleicht habe ich aber auch nur einen

???
PHP-Code:
include 'class_DBAccess.php';
$oDatenbank = new DBAccess();
$oDatenbank->SetDB_Server("localhost");
$oDatenbank->SetDB_Name("testdb");
$oDatenbank->SetDB_User("root");
$oDatenbank->SetDB_Password("");
$g_oDB = $oDatenbank->Connect();
if ( $g_oDB )
{
$g_oResult = $oDatenbank->ExecuteSQLSelect($g_oDB, "SELECT ID, VORNAME, NAME FROM PERSON;");
}
if ( $g_oResult )
{
while($g_oRow = $g_oResult->fetch_object() )
{
echo 'Datensätze aus der Tabelle...';
}
}
}