Geen output bij Prepared Statement

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

George van Baasbank

George van Baasbank

08/12/2013 11:45:11
Quote Anchor link
Hallo allemaal,

Sinds kort maak ik gebruik van PREPARED STATEMENT bij het verwerken van sql-opdrachten voor UPDATE, INSERT INTO en DELETE. Dit lijkt allemaal goed te gaan.
Nu wil ik dit ook invoeren bij een SELECT-opdracht.
Hiervoor had ik de volgende code in gedachten (die niet werkt):

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
<?php

include "queries/sql_laatstgezocht.php";  // Hier zit de sql-instructie in met variabele $sql

// Create a prepared statement

$stmt=mysqli_stmt_init($verbinding);

if (mysqli_stmt_prepare($stmt,$sql)) {

    // Execute query
    mysqli_stmt_execute($stmt);

    // Fetch value
    $row = mysqli_stmt_fetch($stmt);    // Hier lijkt het niet te werken. Wat doe ik fout???

    // Close statement

    mysqli_stmt_close($stmt);
}


?>


Deze bovenstaande geeft een lege verwerking. Wat doe ik fout??

George
 
PHP hulp

PHP hulp

26/11/2020 19:09:54
 
Ward van der Put
Moderator

Ward van der Put

08/12/2013 12:25:36
Quote Anchor link
Tussen mysqli_stmt_execute() en mysqli_stmt_fetch() moet je nog mysqli_stmt_bind_result() gebruiken om het resultaat te binden aan PHP-variabelen.
 
George van Baasbank

George van Baasbank

08/12/2013 12:40:52
Quote Anchor link
Ward,

Bedankt voor je tip. Ik heb het statement werkend.

Overigens gaf php.net aan dat mysqli_stmt vervangen moet worden door maxdb_stmt.
Ik heb gewoon de "oude" syntax gebruikt en die werkt voortreffelijk.

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
<?php
// Create a prepared statement
$stmt=mysqli_stmt_init($verbinding);

if (mysqli_stmt_prepare($stmt,$sql)) {

    // Execute query
    mysqli_stmt_execute($stmt);
    
    /* bind variables to prepared statement */
    mysqli_stmt_bind_result($stmt, $cPersoonId, $dPersoonDatum, $cVoornaam, $cTussenvoeg, $cAchternaam);

    // Fetch value
    mysqli_stmt_fetch($stmt);

    // Close statement
    mysqli_stmt_close($stmt);
}

?>
 



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.