Dürfte dann so richtig sein:
public static function db_query($sql, $asObject = false, $objectParams = null) {
$result = array();
if ($asObject) { // true oder string
if (is\_string($asObject)) {
$className = $asObject;
if (!class\_exists($className))
throw new Exception('class ' . $className . ' does not exist.');
} else { // kein Klassenname übergeben, Standard-Klasse verwenden lassen
$className = null;
$objectParams = null;
}
}
$mysqli = self::\_getConnection();// das ist eine private Methode, die mit ein mysqli-Objekt mit aktiver Verbindung gibt.
$mysqliResult = $mysqli->query($sql, MYSQLI\_USE\_RESULT);
# Query Fehlgeschlagen
if (!$mysqliResult){
throw new Exception("Query fehlgeschlagen <p>".$sql."</p>");
$result=false;
if (mysqli\_error($mysqli)) {
errorlog::getError(1, "MySQL Query-Error, vllt sind die Zugangsdaten falsch.<p>".$sql."</p>", mysqli\_error());
$result = false;
}
}
# Query nicht fehlgeschlagen - R
if ($mysqliResult instanceof mysqli\_result) {
if ($asObject) {
while ($row = $mysqliResult->fetch\_object($className, $objectParams))
$result[] = $row;
}else {
while ($row = $mysqliResult->fetch\_assoc())
$result[] = $row;
}
// wird unbedingt benötigt, wegen MYSQLI\_USE\_RESULT @see mysqli::query()
$mysqliResult->free();
} else {
# Betroffenen Datensätze
$arows=$mysqli->affected\_rows;
if($affectedRows == 0) # Query fehlgeschlagen
{
$result = array(false, 0, 0);
}
else # Query nicht fehlgeschlagen - UDI
{
$result = array(true, $affectedRows, $mysqli->insert\_id);
}
}
return $result;
}