OOP MySQL Klasse, kriege Fehlermeldung

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
Ambience
Mitglied
Beiträge: 628
Registriert: 02.09.2006 11:28
Wohnort: daheim
Kontaktdaten:

OOP MySQL Klasse, kriege Fehlermeldung

Beitrag von Ambience »

Hallo Liebe Community,

ich bin grad im Begriff ein wenig in OOP zu finden, und schreibe mir grad mal ein kleines OOP Gästebuch mit sprachsystem, templatesystem und mysql klasse.

Ich bekomme bei meiner Klasse immer diesen Fehler:
Strict Standards: Resource ID#9 used as offset, casting to integer (9) in C:\xampp\htdocs\Book\includes\class\mysql.php on line 65


Die definierten Klassenvariablen:

Code: Alles auswählen

class mysql
{
  private $db_connect_id;
  private $query_result;
  private $row = array();
  public $num_queries = 0;
Die Funktion dazu ist:

Code: Alles auswählen

public function sql_fetchrow($query_id)
	{
			$this->row[$query_id] = mysql_fetch_array($query_id, MYSQL_ASSOC);
			return $this->row[$query_id];
	}
edit: Eine Abfrage:

Code: Alles auswählen

$sql = 'SELECT *
  FROM ' . CONFIG_TABLE;
  
$result = $db->sql_query($sql);

while ($row = $db->sql_fetchrow($result))
{
	$book_config[$row['config_name']] = $row['config_value'];
}
Weiß jemand wieso dieser Fehler auftritt bzw. was ich ändern muss?
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12178
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: OOP MySQL Klasse, kriege Fehlermeldung

Beitrag von Mahony »

Hallo
Schau mal hier http://www.traum-projekt.com/forum/19-t ... teger.html


Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Benutzeravatar
Ambience
Mitglied
Beiträge: 628
Registriert: 02.09.2006 11:28
Wohnort: daheim
Kontaktdaten:

Re: OOP MySQL Klasse, kriege Fehlermeldung

Beitrag von Ambience »

Nabend,

wenn ich jetzt intval(); benutze, kriege ich einen mysql error, das die resource_id nicht valid ist.

Wie kann ich jetzt dieses beheben? Code ist der gleiche, nur bei der methode mit intval(); halt.


Dankeschön
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12178
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: OOP MySQL Klasse, kriege Fehlermeldung

Beitrag von Mahony »

Hallo
Was passiert wenn du

Code: Alles auswählen

settype($query_id, 'integer'); 
verwendest?



Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Benutzeravatar
Ambience
Mitglied
Beiträge: 628
Registriert: 02.09.2006 11:28
Wohnort: daheim
Kontaktdaten:

Re: OOP MySQL Klasse, kriege Fehlermeldung

Beitrag von Ambience »

das gleiche, der kann bei der while abfrage nichtmehr auf die id zugreifen. ohne dem ganzen würds ja gehen, aber ich riege halt die E_STRICT meldung.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: OOP MySQL Klasse, kriege Fehlermeldung

Beitrag von Pyramide »

Du darfst die Konvertierung nach int natürlich nur dort machen, wo du den Wert als Array-Index verwendest - denn danach ist es ja keine gültige MySQL-Resource mehr.

Übrigens ist deine MySQL-Klasse kein OOP, sondern nur "Funktionen in Klassen gruppieren" (so wie phpBB es macht).
KB:knigge
Benutzeravatar
Ambience
Mitglied
Beiträge: 628
Registriert: 02.09.2006 11:28
Wohnort: daheim
Kontaktdaten:

Re: OOP MySQL Klasse, kriege Fehlermeldung

Beitrag von Ambience »

und wie schaut das ganze dann in OOP aus? Das Tut wonach ich gehe: Klick


Wie krieg ich das mit der resource dann anders geregelt? Ich weiß das die resource dann nichtmehr vorhanden ist, aber laut dieser seite soll man E_STRICT ins error_reporting(); aufnehmen, damit man am ende sauberen code hat. Das habe ich gemacht, aber ich weiß jetzt auf anhieb nicht, wie ich das jetzt beheben kann.

Mit freundlichen Grüßen
Ambience
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: OOP MySQL Klasse, kriege Fehlermeldung

Beitrag von Pyramide »

Objektorientiert wäre es z.B. so wie mit MySQLi: http://de.php.net/manual/de/mysqli-resu ... y.examples

Wesentlicher Unterschied zur Prozeduralen Programmierung ist, dass z.B. die query-Methode ein result-Objekt zurückgibt, welches dann wiederum Methoden bereitstellt.
KB:knigge
Benutzeravatar
Ambience
Mitglied
Beiträge: 628
Registriert: 02.09.2006 11:28
Wohnort: daheim
Kontaktdaten:

Re: OOP MySQL Klasse, kriege Fehlermeldung

Beitrag von Ambience »

Ok, Vielen Dank. Werde es morgen abend nochmal bisschen umschreiben. Will unbedingt mehr von OOP wissen und OOP richtig anwenden, kennst du da evtl. noch ein paar wissenswerte links, dokus, tuts die du empfehlen könntest? Hatte bisher eigentlich gedacht, dass diese funktionssammlungen in klassen schon OOP wäre. Wie ich merke, habe ich da wieder was neues vor mir.

edit: Da ich mein gästebuch oop schreiben will und nur auf php5 laufen soll, wäre dann mysqli und sqlite3 genau das richtige für mich, oder?

Mit freundlichen Grüßen
Ambience
Antworten

Zurück zu „Coding & Technik“