PHP 5.5/5.6 naar 7.1 upgrade

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Johan de wit

johan de wit

17/02/2019 16:13:49
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
function __construct($db_host="",$db_naam="",$db_gebruikersnaam="",$db_wachtwoord="") {
global $CFG;
$db_host = $CFG['db']['db_host'];
$db_naam = $CFG['db']['db_naam'];
$db_gebruikersnaam = $CFG['db']['db_gebruikersnaam'];
$db_wachtwoord  = $CFG['db']['db_wachtwoord'];
$this->db_connection($db_host,$db_naam,$db_gebruikersnaam,$db_wachtwoord);
Gewijzigd op 17/02/2019 16:14:26 door johan de wit
 
PHP hulp

PHP hulp

06/12/2019 14:25:42
 
- Ariën -
Beheerder

- Ariën -

17/02/2019 16:28:42
Quote Anchor link
En hoe roep je het geheel aan?
Waarom gebruik je niet de standaard manier?
 
Adoptive Solution

Adoptive Solution

17/02/2019 16:40:22
Quote Anchor link
Op basis van alle stukjes code heb ik dit in elkaar gezet.

Zo te zien krijg ik verbinding met de server :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php

class Database {

    function
db_connection( $db_host, $db_naam, $db_gebruiker, $db_wachtwoord )
    {

        $conn = mysqli_connect( $db_host, $db_gebruiker, $db_wachtwoord, $db_naam ) or die("Geen verbinding!");
        echo $conn->host_info . '<br />';
        echo '<pre>' . print_r($conn, TRUE ) . '</pre>';
    }

    function
__construct($db_host="",$db_naam="",$db_gebruikersnaam="",$db_wachtwoord="")
    {

        global $CFG;
        echo '<pre>' . print_r($CFG, TRUE ) . '</pre>';
        $db_host           = $CFG['db']['db_host'];
        $db_naam           = $CFG['db']['db_naam'];
        $db_gebruikersnaam = $CFG['db']['db_gebruikersnaam'];
         $db_wachtwoord     = $CFG['db']['db_wachtwoord'];
        $this->db_connection( $db_host, $db_naam, $db_gebruikersnaam, $db_wachtwoord );
    }
}


$CFG = [
    'db' => [
            'db_host' => 'localhost',
            'db_naam' => 'test',
            'db_gebruikersnaam' => 'gebruiker',
            'db_wachtwoord' => 'repelsteeltje'
        ]
];


echo '<pre>' . print_r($CFG, TRUE ) . '</pre>';

$database = new Database();
?>
 
- Ariën -
Beheerder

- Ariën -

17/02/2019 16:50:21
Quote Anchor link
En wat is nu de uitvoer gezien je een hoop debugged?
Gewijzigd op 17/02/2019 16:50:50 door - Ariën -
 
Adoptive Solution

Adoptive Solution

17/02/2019 17:32:58
Quote Anchor link
Ik debug niks. Ik wil zien wat er heen en weer wordt gestuurd.

Hiero een completere versie :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php

class Database {

    private function db_connection( $db_host, $db_naam, $db_gebruiker, $db_wachtwoord )
    {

        $this->conn = mysqli_connect( $db_host, $db_gebruiker, $db_wachtwoord, $db_naam ) or die("Geen verbinding!");
        echo $this->conn->host_info . '<br />';
        echo '<pre>' . print_r($this->conn, TRUE ) . '</pre>';
    }


    public function __construct( $db_host = '', $db_naam = '', $db_gebruikersnaam = '', $db_wachtwoord = '' )
    {

        global $CFG;
        echo '<pre>' . print_r($CFG, TRUE ) . '</pre>';
        $db_host           = $CFG['db']['db_host'];
        $db_naam           = $CFG['db']['db_naam'];
        $db_gebruikersnaam = $CFG['db']['db_gebruikersnaam'];
         $db_wachtwoord     = $CFG['db']['db_wachtwoord'];
        $this->db_connection( $db_host, $db_naam, $db_gebruikersnaam, $db_wachtwoord );
    }


    public function getresult( $sql )
    {

        echo $sql . '<br />';
        $result = mysqli_query( $this->conn, $sql );
        if( mysqli_num_rows($result) > 0 )
        {

            return $result;
        }

        else
        {
            return FALSE;
        }
    }
}


$CFG = [
    'db' => [
            'db_host' => 'localhost',
            'db_naam' => 'test',
            'db_gebruikersnaam' => 'gebruiker',
            'db_wachtwoord' => 'repelsteeltje'
        ]
];


echo '<pre>' . print_r($CFG, TRUE ) . '</pre>';

$database = new Database();

$result = $database->getresult('SHOW TABLES;');

echo '<pre>' . print_r($result, TRUE ) . '</pre>';

foreach ( $result as $row) {
    echo $row['Tables_in_test'] . '<br />';
}

?>
 
- Ariën -
Beheerder

- Ariën -

17/02/2019 17:44:46
Quote Anchor link
Ah, ik dacht dat dit de reactie van de Topicstarter was :p

Hopelijk komt hij er nu uit.
Gewijzigd op 17/02/2019 17:45:36 door - Ariën -
 
Verwijderd 31683

Verwijderd 31683

17/02/2019 19:12:59
Quote Anchor link
Dat is een hoop gesleep met variabelen, kun je niet gewoon de config als parameter meegeven (dependency injection)? En daarbij al het nodeloos kopiëren en doorgeven van variabele(-waarde)n achterwege laten? Dit leidt alleen maar tot wollige foutgevoelige code. Maak je ergens een spellingsfout zoek je je helemaal het leplazerus waar het misgaat.

db_connection() is een rare naam. Je zit al in de database class, en het daadwerkelijke connectie-object zit (uiteindelijk) in $this->conn. Zou het niet veel logischer zijn om deze methode simpelweg connect() te noemen? Want dat is in wezen wat de methode doet.
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.