Mysqli DB-Klasse?

unrealzero_php

Erfahrenes Mitglied
Hallo zusammen

Habe eine DB-Klasse und führe folgende Befehle aus, manchmal funktiniert es manchmal nicht. Das Problem muss bei der Methode getNumRows() liegen, auch wenn ich einen Wert über das SQL-Statement erhalten zeigt es mir den Rückgabewert -1 an.

Wo kann das Problem liegen:

Aufruf:
PHP:
$db = new MySQLResultSet();
$state_res = 'SELECT  `records` FROM `tbl_user_profile` WHERE `FK_user`=1 AND';
							
$state_res  = $db -> doQuery($state_res);
$state_rows = $db -> getNumRows($state_res);

Class:
PHP:
class MySQLResultSet extends mysqli {
		
		protected $MySQLiObj;
		public $result;
		
		/** Konstruktor */
		public function __construct() {
		
			$MySQLiObj = @parent::__construct(DB_SERVER,DB_USER,DB_PW,DB_NAME);
			
			/** Prüfen, ob ein Fehler aufgetreten ist. */
			if (mysqli_connect_errno()) {
				die (mysqli_connect_error() . ' Error No. ' . mysqli_connect_errno());
			}
		}
		
		/** Destruktor */
		public function __destruct() {
			if ($this -> MySQLiObj) {
				$this -> close();
			}
		}
		
		/** Methoden */
		public function doQuery($qry) {
			
			$this -> result = parent::query($qry);
			
			return $this -> result;
		}
		
		public function getFetchArray($res) {
			return $res -> fetch_array();
		}
		
		public function getFetchAssoc() {
			return $res -> fetch_assoc();
		}
		
		public function getNumRows() {
			return $this -> affected_rows;
		}
	
		public function getLastInsertedID() {
			return mysqli_insert_id($this);
		}
	}
 
NumRows und AffectedRows sind zwei verschiedene Paar Schuhe. Während NumRows bei einem SELECT-Statement die Anzahl der gefundenen Datensätze ist, ist AffectedRows die Anzahl der betroffenen Datensätze bei einem INSERT, UPDATE oder DELETE Statement.
 
NumRows und AffectedRows sind zwei verschiedene Paar Schuhe. Während NumRows bei einem SELECT-Statement die Anzahl der gefundenen Datensätze ist, ist AffectedRows die Anzahl der betroffenen Datensätze bei einem INSERT, UPDATE oder DELETE Statement.

Bei MySQLi kann affected_rows() auch für num_rows() verwendet werden: http://us3.php.net/manual/en/mysqli.affected-rows.php.

Also sollte es keinen Fehler geben. Auch der Einsatz des Befehls num_rows() ergibt nicht das gewünschte Ergebnis.
 
Zurück