MySQL database klasse feedback
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
class database {
public function __construct() {
$this->dbhost = 'localhost';
$this->dbuser = 'xxxx';
$this->dbpass = 'xxxx';
$this->dbconn = null;
}
/**
* Connectie maken met de MySQL database
*/
public function connect($dbname) {
if(!$this->dbconn) {
if (!$this->dbconn = mysql_connect($this->dbhost, $this->dbuser, $this->dbpass)) {
throw new Exception('<p>Could not connect to the MySQL database!</p>');
} else {
if (!mysql_select_db($dbname)) {
throw new Exception('<p>Could not find specified database!</p>');
}
}
}
}
/**
* Query uitvoeren, return $result
*/
public function query($sql) {
if(!$result = mysql_query($sql, $this->dbconn)) {
throw new Exception('<p>Could not execute query! MySQL error: ' . mysql_error() . '</p> ');
} else {
return $result;
}
}
/**
* Fetch assoc(array) doormiddel van de resultaten van de query
*/
public function FetchAssoc($sql) {
if(!$result = mysql_fetch_assoc($sql)) {
throw new Exception('<p>Could not execute query!</p>');
} else {
return $result;
}
}
/**
* Fetch row array doormiddel van de resultaten van de query
*/
public function FetchRow($sql) {
if(!$result = mysql_fetch_row($sql)) {
throw new Exception('<p>Could not fetch row!</p>');
} else {
return $result;
}
}
/**
* Tel het aantal rijen in de resultaten van de query
*/
public function NumRows($sql) {
if(!$result = mysql_num_rows($sql)) {
throw new Exception('<p>Could not count the number of rows!</p>');
} else {
return $result;
}
}
}
?>
class database {
public function __construct() {
$this->dbhost = 'localhost';
$this->dbuser = 'xxxx';
$this->dbpass = 'xxxx';
$this->dbconn = null;
}
/**
* Connectie maken met de MySQL database
*/
public function connect($dbname) {
if(!$this->dbconn) {
if (!$this->dbconn = mysql_connect($this->dbhost, $this->dbuser, $this->dbpass)) {
throw new Exception('<p>Could not connect to the MySQL database!</p>');
} else {
if (!mysql_select_db($dbname)) {
throw new Exception('<p>Could not find specified database!</p>');
}
}
}
}
/**
* Query uitvoeren, return $result
*/
public function query($sql) {
if(!$result = mysql_query($sql, $this->dbconn)) {
throw new Exception('<p>Could not execute query! MySQL error: ' . mysql_error() . '</p> ');
} else {
return $result;
}
}
/**
* Fetch assoc(array) doormiddel van de resultaten van de query
*/
public function FetchAssoc($sql) {
if(!$result = mysql_fetch_assoc($sql)) {
throw new Exception('<p>Could not execute query!</p>');
} else {
return $result;
}
}
/**
* Fetch row array doormiddel van de resultaten van de query
*/
public function FetchRow($sql) {
if(!$result = mysql_fetch_row($sql)) {
throw new Exception('<p>Could not fetch row!</p>');
} else {
return $result;
}
}
/**
* Tel het aantal rijen in de resultaten van de query
*/
public function NumRows($sql) {
if(!$result = mysql_num_rows($sql)) {
throw new Exception('<p>Could not count the number of rows!</p>');
} else {
return $result;
}
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Mitchel
Emmanuel Delay schreef op 18.06.2009 12:56:
Ik heb die ook gezien maar die is heel wat uitgebreider. En ik vroeg dus of mijnes een beetje op de goede weg wasKijk ook hier eens naar.
http://phphulp.nl/forum/showtopic.php?cat=1&id=65121&lasttopic=1
http://phphulp.nl/forum/showtopic.php?cat=1&id=65121&lasttopic=1
Wat je je zelf moet afvragen, is wat je precies aan toegevoegde waarde hebt.
Zoals ik het nu zie, komt elk van jouw methodes overeen met 1 (niet OOP) functie.
De exeptions die je aanroept, zijn er nu meestal ook al, in de vorm van warnings.
Wanneer je er toe komt dat je minder schrijfwerk hebt buiten de klasse, heb je toegevoegde waarde.
Mocht je meer veiligheid bieden binnen de klasse, zodat je minder werk hebt buiten de klasse, heb je ook toegevoegde waarde.
Mij lijkt het dat je - voorlopig - niet veel meer doet dan mySQL functies vervangen door andere functies, maar dan met een -> .
1 voorbeeld: waarom zou je connect niet als private zetten en vanuit de constructor aanspreken. Je gaat toch geen database object aanmaken als je geen connectie zou maken?
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
Emmanuel Delay schreef op 18.06.2009 13:41:
bedankt voor je reply en dit is nog maar een basis en als ik meer vaardigheid krijg in php word deze zeker uitgebreid. Ik connect niet in mijn construct omdat ik connect en select database in 1 functie heb staan en via deze manier kies ik ook meteen de databaseJe kan zeker wel verder bouwen waaraan je bezig bent.
Wat je je zelf moet afvragen, is wat je precies aan toegevoegde waarde hebt.
Zoals ik het nu zie, komt elk van jouw methodes overeen met 1 (niet OOP) functie.
De exeptions die je aanroept, zijn er nu meestal ook al, in de vorm van warnings.
Wanneer je er toe komt dat je minder schrijfwerk hebt buiten de klasse, heb je toegevoegde waarde.
Mocht je meer veiligheid bieden binnen de klasse, zodat je minder werk hebt buiten de klasse, heb je ook toegevoegde waarde.
Mij lijkt het dat je - voorlopig - niet veel meer doet dan mySQL functies vervangen door andere functies, maar dan met een -> .
1 voorbeeld: waarom zou je connect niet als private zetten en vanuit de constructor aanspreken. Je gaat toch geen database object aanmaken als je geen connectie zou maken?
Wat je je zelf moet afvragen, is wat je precies aan toegevoegde waarde hebt.
Zoals ik het nu zie, komt elk van jouw methodes overeen met 1 (niet OOP) functie.
De exeptions die je aanroept, zijn er nu meestal ook al, in de vorm van warnings.
Wanneer je er toe komt dat je minder schrijfwerk hebt buiten de klasse, heb je toegevoegde waarde.
Mocht je meer veiligheid bieden binnen de klasse, zodat je minder werk hebt buiten de klasse, heb je ook toegevoegde waarde.
Mij lijkt het dat je - voorlopig - niet veel meer doet dan mySQL functies vervangen door andere functies, maar dan met een -> .
1 voorbeeld: waarom zou je connect niet als private zetten en vanuit de constructor aanspreken. Je gaat toch geen database object aanmaken als je geen connectie zou maken?
Voeg deze methode eens toe aan je klasse
Code (php)
Dan kan je je klasse bv. zo gerbruiken
Code (php)
1
2
3
4
2
3
4
<?php
$m_db = new database();
$leden = $m_db->select ('SELECT * FROM phpbb3_users', 'forum_database');
?>
$m_db = new database();
$leden = $m_db->select ('SELECT * FROM phpbb3_users', 'forum_database');
?>
Zo'n functies zou je ook kunnen maken voor insert, update, ...
Nog een detail: hernoem de parameters $sql. Bv. je fetcht een recource, niet een sql string. Je zou de naam van die parameter dan ook beter $resource noemen.
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
Emmanuel Delay schreef op 18.06.2009 15:43:
bedankt voor je reply met dit kan ik ook wel wat en ik ga er nog even verder aan sleutelen :)Bekijk dit bv. eens.
Voeg deze methode eens toe aan je klasse
Dan kan je je klasse bv. zo gerbruiken
Zo'n functies zou je ook kunnen maken voor insert, update, ...
Nog een detail: hernoem de parameters $sql. Bv. je fetcht een recource, niet een sql string. Je zou de naam van die parameter dan ook beter $resource noemen.
Voeg deze methode eens toe aan je klasse
Code (php)
Dan kan je je klasse bv. zo gerbruiken
Code (php)
1
2
3
4
2
3
4
<?php
$m_db = new database();
$leden = $m_db->select ('SELECT * FROM phpbb3_users', 'forum_database');
?>
$m_db = new database();
$leden = $m_db->select ('SELECT * FROM phpbb3_users', 'forum_database');
?>
Zo'n functies zou je ook kunnen maken voor insert, update, ...
Nog een detail: hernoem de parameters $sql. Bv. je fetcht een recource, niet een sql string. Je zou de naam van die parameter dan ook beter $resource noemen.
Wat ik ook nog doe, is het volgende
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Zo kan je zowel de database gegevens op de server op op je eigen pc invullen in het zelfde script.
Ik denk, als je nu voort gaat op wat je hebt, en de tips die je kreeg, dat je nu echt iets met toegevoegde waarde zal kunnen maken.