Chris: Dedlfix hilf mir nochmal eben - OOP Datenbankklasse

Beitrag lesen

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;  
}