prepare update statement met array waarden voor kolommen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Daniel van Seggelen

Daniel van Seggelen

15/06/2022 11:56:39
Quote Anchor link
Heb deze code, omdat ik aan de hand van een array alleen de geseleceerde kolomnamen wil updaten dat uit $fieldArr komt:

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
foreach ($content as $productId)
    {
    
        foreach ($fieldArr as $value )
        {
            if (isset($_GET[$value]) &&  $_GET[$value] != '')
            {
                echo $productId.'<br/>';
                $inn = $DBD->conn()->prepare('UPDATE producten SET "'.$value.'" = ? WHERE id = ?');
                $inn->bind_param( "ss",$_GET[''.$value.''],$productId);
                                                        
                    if (!$inn->execute())
                    {
                    $error = $inn->error;
                    echo  $error;  
                    $inn->close();die();                                            
                    }
            }
        } // end foreach
        
    } // end foreach


Ik krijg deze foutmelding:

Fatal error: Uncaught Error: Call to a member function bind_param() on boolean in...

Is dit op te lossen?
 
PHP hulp

PHP hulp

26/06/2022 13:40:25
 
Adoptive Solution

Adoptive Solution

15/06/2022 13:11:32
Quote Anchor link
Veldnamen staan nooit tussen aanhalingstekens.

Doe het met of zonder ` en dan consequent :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
'UPDATE producten SET `' . $value . '` = ? WHERE `id` = ?'
 
- Ariën  -
Beheerder

- Ariën -

15/06/2022 17:49:48
Quote Anchor link
Wat is het praktisch nut van lege strings?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$_GET[''.$value.'']
Gewijzigd op 15/06/2022 17:50:13 door - Ariën -
 
Daniel van Seggelen

Daniel van Seggelen

15/06/2022 18:20:01
Quote Anchor link
Adoptive Solution op 15/06/2022 13:11:32:
Veldnamen staan nooit tussen aanhalingstekens.

Doe het met of zonder ` en dan consequent :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
'UPDATE producten SET `' . $value . '` = ? WHERE `id` = ?'


Dit geeft dezelfde fout, had ik eerder geprobeert

 
Jan Koehoorn

Jan Koehoorn

15/06/2022 19:47:30
Quote Anchor link
Probeer hem eens zo:

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
<?php
foreach ($content as $productId) {
    foreach ($fieldArr as $value) {
        if ( ! empty($_GET[$value])) {
            echo $productId . '<br/>';

            $sql = "UPDATE producten SET {$value} = ? WHERE id = ?";
            $inn = $DBD->conn()->prepare($sql);

            if (false === $inn) {
                printf('<pre>Invalid query: %s</pre>', $sql);
            }
else {
                $inn->bind_param("ss", $_GET[$value], $productId);

                if ( ! $inn->execute()) {
                    $error = $inn->error;
                    echo $error;
                    $inn->close();die();
                }
            }
        }
    }
}

?>
Gewijzigd op 15/06/2022 19:48:10 door Jan Koehoorn
 
Ivo P

Ivo P

16/06/2022 10:06:33
Quote Anchor link
kun je anders de error naar voren halen?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
  $sql
= "UPDATE producten SET {$value} = ? WHERE id = ?";
  if($inn = $DBD->conn()->prepare($sql)) {
    // do your thing
   }
   else {
     echo 'foutmelding met prepare '. $sql . ' : ' . $DBD->conn()->error;
   }

?>
 



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.