Hee Allemaal,

Ik ben bezig om OOP te leren, zo ben ik nu bezig met het maken van een MySQL class. Dit mij het gemakkelijk maakt om querys naar de database te zenden. Natuurlijk zijn er genoeg class te vinden maar wat ik al zonet vertelde, het was om te leren.

Mijn mysql.class.php

<?php

class mysql
{
var $sServer;
var $sUserName;
var $sPassWord;
var $sDataBase;
var $sCommand;
public $queryprompt;

public function __construct($sUserName, $sPassWord, $sDataBase)
{
$this->sServer = "localhost";
$this->sUserName = $sUserName;
$this->sPassWord = $sPassWord;
$this->sDataBase = $sDataBase;

}

/*
Connection to the database
Returns a error if the connetion failed
*/
public function connectToDB()
{
if(!mysql_connect($this->sServer,$this->sUserName,$this->sPassWord) || !mysql_select_db($this->sDataBase)) {
return "There is some problem";
}
}

public function query($sCommand)
{
$queryprompt = mysql_query($sCommand, $this->connectToDB());
}

public function getRecord()
{
$data = mysql_fetch_array($this->queryprompt);
return $data;
}
}
?>

Mijn test bestand:

<?php

include_once( "mysql.class.php" );

$db = new mysql("gebruikersnaam","wachtwoord", "databasenaam");

$db->connectToDB();
$db->query("SELECT * FROM klanten");
$db->getRecord();

?>

Op moment krijg ik deze error:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/classtest/mysql.class.php on line 46

Wat doe ik nou fout?
En waarom maar het beperkte gebruik van "public $var" in je class, ik zie nog een aantal maal

var $var

staan, waar ik geen gegronde reden voor kan verzinnen, zet die ook om daar de "PHP5 manier. Probeer zelf netjes en consistent te programmeren, waaronder ook met Exceptions werken.
@Blanche PHP: Ja, klopt die foutafhandeling moet er nog in.
@Afra ca: hoe bedoel je, moet ik alles maar op public zetten?

Sorry, ben er nog niet zo in thuis in OOP.


<?php
public function getRecord()
{
$this->data = mysql_fetch_array($this->queryprompt);
return $this->data;
}
?>

Hoe pak ik de data weer op? met een foreache in mijn procedurele code?

Reageren