Goedemorgen allemaal,

Naar aanleiding van topics op dit forum omtrent de instructies MYSQL dat die verlaten gaan worden en vervangen gaan worden door MYSQLi, heb ik de stoute schoenen aangetrokken om een start te maken met de migratie van MYSQL naar MYSQLi.
Echter, ik krijg de eerste pagina al niet werkend.

Omdat ik veelvuldig connecties maak met mijn database heb ik gekozen om de connectie telkens middels een include in te lezen.
Mijn connectie ziet er dan als volgt uit:

$verbinding = mysqli_connect("SERVERNAAM","GEBRUIKERSNAAM","WACHTWOORD","DATABASAE");
// De variabelen heb ik t.b.v. dit topic aangepast

// Check connection
if (mysqli_connect_errno($verbinding)) {
    echo "Geen verbinding met SQL-database. Foutnummer: " . mysqli_connect_error();
} else {
    echo "Verbinding gemaakt";
}

mysqli_set_charset($verbinding,"utf8");


In mijn index-bestand heb ik dit bestand alsvolgt opgenomen:

session_start();
 
error_reporting(0);

include "include/connectie_nw.inc.php";  // Bovengetoonde code

$sql = "SELECT * FROM sys__menustructuur WHERE website = 'webplein' ORDER BY volgnummer";
$cResultMenu = mysqli_query($sql);

mysqli_close($verbinding);

while($rowMenu = mysqli_fetch_array($cResultMenu)) {
    $cMenu = $rowMenu['menuregel'];
    $cSub = $rowMenu['subregel'];
    $cTitle = $rowMenu['title'];
    $cTarget = $rowMenu['target'];
    $cLink = $rowMenu['url'];
    .... verdere afhandeling van de ingeleen waardes
}


De ingelezen waardes worden echter niet getoond. Waar maak ik mijn denkfout?

George
Op regel 8 mist een parameter.

Je sluit de connectie en dan ga je toch proberen data op te halen.

Regel 3: Zet de errors aan.
Haal regel 10 weg. Overigens merk wel op dat een mysqli_close niet verplicht is maar wel aan te raden aan het einde van je script(db gedeelte). De voordelen hiervan zijn gewoon niks meer en minder dan snelheid. hoe sneller je je verbinding weer sluit hoe sneller je script gaat. sowieso wordt aan het einde van je code alle verbindingen verbroken.

Inderdaad,

Bij MSQLi_query had ik geen verbinding gemaakt. Blijkt dus bij MYSQLi nodig te zijn.
Ik probeer zoveel mogelijk de databse te sluiten na gebruik dus ben ik een voorstander van het handhaven van MYSQLi_close
George van Baasbank op 27/10/2013 11:54:03

Ik probeer zoveel mogelijk de databse te sluiten na gebruik dus ben ik een voorstander van het handhaven van MYSQLi_close

Let op dat mysqli_close() de TCP-socket niet sluit; die blijft nog enige tijd in een wait-state staan. Doe dus altijd eerst een mysqli_kill() voordat je een mysqli_close() doet.
Moet regel 8 (in het 2e blok) niet zijn:
$cResultMenu = mysqli_query($verbinding, $sql);

Reageren