class voor databaseconnectie
ik heb een klein probleempje met het onderstaande script. Als ik gewoon de klasse uittest in een browser komt er te staan: Warning: mysql_query() expects parameter 2 to be resource, null given
er komt ook te staan 'undefined variable connect'. Met andere woorden ik doe iets fout met de $connectie variabele waar eigenlijk de databasegegevens zouden in moeten opgeslagen worden. Ik denk dat het is omdat $dbconnect niet als parameter word gebruikt maar ik weet niet hoe ik de de dbgegevens ander zou moeten opslaan.
Mischien weet hier iemand wel een oplossing op ? :)
Alvast bedankt !
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
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
<?php
include ('html_kop.inc.php') ;
//CLASS MAKEN EN EIGENSCHAPPEN DEFINIËREN
class DataConn {
public $dbhost ;
public $dbuser ;
public $dbpass ;
public $dbname ;
public $dbconnect ;
public $dbquery ;
// DATABSE CONNECTIE MAKEN
public function __construct ($host, $user, $pass, $name) {
$this->dbhost = $host;
$this->dbuser = $user ;
$this->dbpass = $pass ;
$this->dbname = $name ;
$this->dbconnect = $connect ;
$connect = mysql_connect($host, $user, $pass) or die('<p>fout: connectie</p>') ;
//DATABASE SELECTEREN
mysql_select_db($name, $connect) or die ('<p>fout: database bestaat niet</p>') ;
}
//QUERY UITVOEREN
public function PutDatabase($query) {
$this->dbquery = $query ;
mysql_query($query, $connect) ;
}
}
?>
include ('html_kop.inc.php') ;
//CLASS MAKEN EN EIGENSCHAPPEN DEFINIËREN
class DataConn {
public $dbhost ;
public $dbuser ;
public $dbpass ;
public $dbname ;
public $dbconnect ;
public $dbquery ;
// DATABSE CONNECTIE MAKEN
public function __construct ($host, $user, $pass, $name) {
$this->dbhost = $host;
$this->dbuser = $user ;
$this->dbpass = $pass ;
$this->dbname = $name ;
$this->dbconnect = $connect ;
$connect = mysql_connect($host, $user, $pass) or die('<p>fout: connectie</p>') ;
//DATABASE SELECTEREN
mysql_select_db($name, $connect) or die ('<p>fout: database bestaat niet</p>') ;
}
//QUERY UITVOEREN
public function PutDatabase($query) {
$this->dbquery = $query ;
mysql_query($query, $connect) ;
}
}
?>
Gewijzigd op 06/08/2013 19:06:35 door Ward Beyens
Code (php)
1
2
3
4
2
3
4
<?php
$this->dbconnect = $connect ;
$connect = mysql_connect($host, $user, $pass) or die('<p>fout: connectie</p>') ;
?>
$this->dbconnect = $connect ;
$connect = mysql_connect($host, $user, $pass) or die('<p>fout: connectie</p>') ;
?>
Je slaat dus eerst de variabele $connect op in een property, maar maakt het DAARNA pas aan... uhm... verkeerde volgorde dunkt mij?
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
public function PutDatabase($query) {
$this->dbquery = $query ;
mysql_query($query, $connect) ;
}
?>
public function PutDatabase($query) {
$this->dbquery = $query ;
mysql_query($query, $connect) ;
}
?>
En hier gebruik je een variabele $connect, waar komt die vandaan? Die bestaat in die methode helemaal niet. Ik gok dat je hier het property wil gebruiken, dus $this->connect.
En verder vraag ik me af waarom je al die connectie gegevens opslaat in properties, waar is dat voor nodig?
Gebruik ook geen publieke properties, maar private. Zeker bij een connectie wil je niet dat er ergens van buitenaf even simpel die connectie geleegd wordt.
Het is de eerste keer dat ik een object georienteerd scriptje maak ;) Bedankt voor de nuttige tips ik heb het ondertussen aangepast en het werkt :)