Ik ben op dit moment met een project bezig en die ik wil gaan maken met behulp van OOP.
Nu ben ik eerst wat gaan testen, en nu ben ik er na 2 uur nog niet achter wat precies het probleem is, ik zal eerst even de source code geven:
Als ik dit uitvoer, krijg ik 2 errors, namelijk:
Nu ben ik bezig gegaan met de eerste warning, blijkbaar maakt hij geen verbinding, en blijft $pMySQLConnection op false staan, ik heb al meerdere dingen geprobeerd zoals je in de comments ziet, maar geen van deze oplossing werken. Is het mogelijk om een variabele uit een andere class rechtstreeks aan te roepen? net zoals dit bij je eigen class kan $this->pMySQLConnection, want volgens mij ligt hier het probleem.
Ik hoop dat jullie me iets verder op weg kunnen helpen, ik verwacht niet dat jullie mijn code gaan debuggen of wat dan ook, maar stuur me dan alsjeblieft op weg.
EDIT: Misschien handig om te vermelden; ik gebruik PHP 4, dus ik kan geen constructs en dergelijke gebruiken.
Nu ben ik eerst wat gaan testen, en nu ben ik er na 2 uur nog niet achter wat precies het probleem is, ik zal eerst even de source code geven:
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
| <?php class Test { var $pMySQLConnection = false; var $sQueryResult = false; function connectToDatabase( $sUsername = "xxx", $sHost = "localhost", $sPassword = "xxx", $sDatabaseName = "xxx" ) { // Check if there's already a connection if ( $pMySQLConnection === false ){ // Connect with the server and create a pointer to use in queries. $this->pMySQLConnection = mysql_connect( $sHost, $sUsername, $sPassword ) or die( "Er kon geen verbinding gemaakt worden met de MySQL Database, error: " . mysql_error() ); // Select the database with the pointer. mysql_select_db( $sDatabaseName, $this->pMySQLConnection ) or die( "De database kon niet geselecteerd worden, error: " . mysql_error() ); // Return the pointer return $this->pMySQLConnection; } else { // Connection with database is already established, return the pointer return $this->pMySQLConnection; } } } class Test2 extends Test { /* var $pMySQLConnection = false;*/ function doQuery( $sQuery, $bDataIsSecure = false ) { // Check if a connection is established. if ( $this->pMySQLConnection === false ) { // No Connection established, so establish the connection. Test::connectToDatabase(); } /* $this->pMySQLConnection = connectToDatabase;*/ // Check if data is secure or not. default is false. if ( $bDataIsSecure === false ){ // Secure all data again MySQL Injection. mysql_real_escape_string( $sQuery, $this->pMySQLConnection ); } // Query is safe, execute it and return output to the class. $this->sQueryResult = mysql_query( $sQuery, $this->pMySQLConnection ) or die( "De Query die uitgevoerd werd is mislukt, error: " . mysql_error() ); return $this->sQueryResult; } } $oTest = new Test2; //$oTest->connectToDatabase(); $query = $oTest->doQuery("SELECT voornaam FROM gebruikers"); $sResult = mysql_fetch_array($query); print_r($sResult); ?> |
Als ik dit uitvoer, krijg ik 2 errors, namelijk:
code:
1
2
3
4
| Warning: mysql_real_escape_string() expects parameter 2 to be resource, boolean given in /home/domains/hierden.com/hierden/www/test.php on line 53 Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/domains/hierden.com/hierden/www/test.php on line 58 De Query die uitgevoerd werd is mislukt, error: |
Nu ben ik bezig gegaan met de eerste warning, blijkbaar maakt hij geen verbinding, en blijft $pMySQLConnection op false staan, ik heb al meerdere dingen geprobeerd zoals je in de comments ziet, maar geen van deze oplossing werken. Is het mogelijk om een variabele uit een andere class rechtstreeks aan te roepen? net zoals dit bij je eigen class kan $this->pMySQLConnection, want volgens mij ligt hier het probleem.
Ik hoop dat jullie me iets verder op weg kunnen helpen, ik verwacht niet dat jullie mijn code gaan debuggen of wat dan ook, maar stuur me dan alsjeblieft op weg.
EDIT: Misschien handig om te vermelden; ik gebruik PHP 4, dus ik kan geen constructs en dergelijke gebruiken.