bind_param en brackets

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

J C

J C

12/07/2015 04:51:25
Quote Anchor link
Ik heb een simpele query.

Met mysql werkte het prima, maar probeer het nu om te vormen naar mysqli.
Maar kom er niet helemaal uit.

Ik denk dat het komt door de brackets, maar kan op internet niet echt vinden of dit wel of niet mag.
Ik heb geprobeerd er een gewone varibel van te maken, maar dat maakt geen verschil in de foutmelding.

Foutmelding:
Fatal error: Cannot pass parameter 3 by reference in ***

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
for($i=0; $i<count($_POST['product']); $i++)
    {        
        if(is_numeric($_POST['aantal'][$i]) and $_POST['aantal'][$i]>0)
        {
                        
            $stmt = $connection->prepare("
                        INSERT INTO
                            podium_berekening_onderdelen
                        SET
                            berekening_kenmerk     = ?,
                            berekening_product     = ?,
                            berekening_aantal     = ?,
                            berekening_soort    = ?
                        ");
                        
            $stmt->bind_param('ssis', $kenmerk, $_POST['product'][$i], $_POST['aantal'][$i], $_POST['soort'][$i]);
            $stmt->execute();
            $stmt->close();    
            
        }
    }
Gewijzigd op 12/07/2015 04:57:17 door J C
 
PHP hulp

PHP hulp

15/07/2024 19:24:36
 
Thomas van den Heuvel

Thomas van den Heuvel

12/07/2015 11:09:23
Quote Anchor link
Het is
INSERT INTO table(col1, col2, col3) VALUES (val1, val2, val3)
en
UPDATE table SET col1=val1, col2=val2, col3=val3 WHERE conditions.

Jij combineert in bovenstaande varianten de syntax van een INSERT en een UPDATE statement, dat gaat natuurlijk niet werken.

Ook zou je execute statement false moeten teruggeven als je query niet slaagt.

Als alternatief, en wellicht beter, zou je de instelling PDO::ATTR_ERROR_MODE de waarde PDO::ERRMODE_EXCEPTION kunnen geven zodat elke fout resulteert in een exception. Als je dan vervolgens alles in een try-catch blok zet kun je deze fouten op- of afvangen.

Schrijf code zodat je deze ook makkelijk kunt debuggen.
 
J C

J C

12/07/2015 13:36:55
Quote Anchor link
Misschien de volgende keer ook gewoon gaan slapen, dit is wel een heel erg domme fout. Bedankt voor de hulp.
 



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.