Database connectie error
Fatal error: Interface function Database::connect() cannot contain body in G:\wamp\www\OOP\leren\tabel\database.class.php on line 9
Dit is mijn function in de class database
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
public function connect ($server = '', $username = '', $password = '', $database = '' $new_link = true, $client_flags = 0)
{
$this->_Mysqli = mysqli_connect($server, $username, $password, $database, $new_link, $client_flags);
}
?>
public function connect ($server = '', $username = '', $password = '', $database = '' $new_link = true, $client_flags = 0)
{
$this->_Mysqli = mysqli_connect($server, $username, $password, $database, $new_link, $client_flags);
}
?>
en ik roep hem zo aan
Weet iemand wat ik fout doe?
EDIT
Er gaat wat fout met het topic.. Hij staat in admin/mod hulp.. Hoe wijzig ik dat?
Gewijzigd op 01/01/1970 01:00:00 door Niels K
Maar wat je fout doet,
Je heb een interface class,, en in een interface mogen functies geen code hebben.
Een interface is enkelt om verplichte functies op te stellen voor een algemeen object.
Bijvoorbeeld een organisme interface zal altijd een functie getLevend hebben, om maar iets te noemen,, omdat ieder organisme leeft.
Dus een interface is eigenlijk een rauwe blauwdruk van hoe een bepaald object er MINIMAAL uit moet zien.
komma?
Dit heb ik ook.. ik heb een interface en dit is de class
class MysqlDatabase implements Database
@Mr.Ark klopt.. Maar dat verhelpt het probleem niet..
@nico (Nog een keer)
Hier heb je wat meer code.. Dan snap je het waarschijnlijk beter:)
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
<?php
interface Database
{
public function connect()
{
}
public function error ()
{
}
public function errno ()
{
}
public function escape ($string)
{
}
public function query ($Query)
{
}
public function fetchArray ($Result)
{
}
public function fetchRow ($Result)
{
}
public function fetchAssoc ($Result)
{
}
public function fetchObject ($Result)
{
}
public function numRows ($Result)
{
}
public function close ()
{
}
}
class MysqlDatabase implements Database
{
private $_Mysqli;
public function connect ($server = '', $username = '', $password = '', $database = '', $new_link = true, $client_flags = 0)
{
$this->_Mysqli = mysqli_connect($server, $username, $password, $database, $new_link, $client_flags);
}
public function error ()
{
return mysqli_errno ($this->_Mysqli);
}
public function errno ()
{
return mysql_error ($this->_Mysqli);
}
public function escape ($string)
{
return mysqli_real_escape_string ($string, $this->_Mysqli);
}
public function query ($Query)
{
return mysqli_query ($Query, $this->_Mysqli);
}
public function fetchArray ($Result, $array_type = MYSQLI_BOTH)
{
return mysqli_fetch_array ($Result, $array_type);
}
public function fetchRow ($Result)
{
return mysqli_fetch_row ($Result, $this->_Mysqli);
}
public function fetchAssoc ($Result)
{
return mysqli_fetch_assoc ($Result, $this->_Mysqli);
}
public function fetchObject ($Result)
{
return mysqli_fetch_object ($Result, $this->_Mysqli);
}
public function numRows ($Result)
{
return mysqli_num_rows ($Result, $this->_Mysqli);
}
public function close ()
{
return mysqli_close ($this->_Mysqli);
}
}
$db = new MysqlDatabase();
$db->connect ('localhost', 'root', '', 'peter');
$Result = $db->query ("SELECT naam FROM gebruikers");
while ($row = $db->fetchAssoc($Result))
{
echo $row['naam'];
}
?>
interface Database
{
public function connect()
{
}
public function error ()
{
}
public function errno ()
{
}
public function escape ($string)
{
}
public function query ($Query)
{
}
public function fetchArray ($Result)
{
}
public function fetchRow ($Result)
{
}
public function fetchAssoc ($Result)
{
}
public function fetchObject ($Result)
{
}
public function numRows ($Result)
{
}
public function close ()
{
}
}
class MysqlDatabase implements Database
{
private $_Mysqli;
public function connect ($server = '', $username = '', $password = '', $database = '', $new_link = true, $client_flags = 0)
{
$this->_Mysqli = mysqli_connect($server, $username, $password, $database, $new_link, $client_flags);
}
public function error ()
{
return mysqli_errno ($this->_Mysqli);
}
public function errno ()
{
return mysql_error ($this->_Mysqli);
}
public function escape ($string)
{
return mysqli_real_escape_string ($string, $this->_Mysqli);
}
public function query ($Query)
{
return mysqli_query ($Query, $this->_Mysqli);
}
public function fetchArray ($Result, $array_type = MYSQLI_BOTH)
{
return mysqli_fetch_array ($Result, $array_type);
}
public function fetchRow ($Result)
{
return mysqli_fetch_row ($Result, $this->_Mysqli);
}
public function fetchAssoc ($Result)
{
return mysqli_fetch_assoc ($Result, $this->_Mysqli);
}
public function fetchObject ($Result)
{
return mysqli_fetch_object ($Result, $this->_Mysqli);
}
public function numRows ($Result)
{
return mysqli_num_rows ($Result, $this->_Mysqli);
}
public function close ()
{
return mysqli_close ($this->_Mysqli);
}
}
$db = new MysqlDatabase();
$db->connect ('localhost', 'root', '', 'peter');
$Result = $db->query ("SELECT naam FROM gebruikers");
while ($row = $db->fetchAssoc($Result))
{
echo $row['naam'];
}
?>
Omdat hij anders denkt dat je toch een body heb.
Dus je interface word:
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
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
<?php
interface Database
{
public function connect();
public function error ();
public function errno ();
public function escape ($string);
public function query ($Query);
public function fetchArray ($Result);
public function fetchRow ($Result);
public function fetchAssoc ($Result);
public function fetchObject ($Result);
public function numRows ($Result);
public function close ();
}
?>
interface Database
{
public function connect();
public function error ();
public function errno ();
public function escape ($string);
public function query ($Query);
public function fetchArray ($Result);
public function fetchRow ($Result);
public function fetchAssoc ($Result);
public function fetchObject ($Result);
public function numRows ($Result);
public function close ();
}
?>
Nu krijg ik alleen dit nog
Warning: mysqli_query() expects parameter 1 to be mysqli, string given in G:\wamp\www\OOP\leren\tabel\database.class.php on line 76
Warning: mysqli_fetch_assoc() expects exactly 1 parameter, 2 given in G:\wamp\www\OOP\leren\tabel\database.class.php on line 97
Maar naar mijn weten staat dat gewoon goed toch?
Dan is het toch vrij duidelijk.
mysqli_query() Verwacht dat de eerste parameter een mysqli is.
Jij geeft een string mee.
Even snel opgezocht voor je:
mysqli_query ( resource link, string query [, int resultmode] )
Dus je query zou er zo uit moeten zien:
mysqli_query($this->_Mysqli, $Query);
2e is gewoon dat je die 2e parameter weg moet halen,, omdat die namelijk alleen een result wilt,, en niet de database connectie.
Ok, ik doe altijd eerst query en daar naar db connectie.. Maar goed bedankt voor je reactie's
It's just an suggestion.
Maar ik ben zelf niet bekend met MysqlI, dus heb ook geen idee hoe het allemaal werkt,, maar dat is gewoon wat internet mij vertel,t
And who am i to argue the internet?
Haha ja eigenlijk ben ik nu PDO aan het herschrijven of een soort en met van.. Ik gebruik ook PDO maar ik wilde het ook eens proberen met MYSQLi
Ok, dan kunt u mijn brief als niet verzonden beschouwen.
Haha, neaj bedankt dat je me er op wijst.. maar ik vind PDO ook nog best wel moeilijk.. En dan direct 2 dingen gebruiken vind ik weer even te veel van het goede:)
Zit je niet in de verkeerde categorie (hier op het forum)??
Ja, kijk maar in de begin post:D