Heb deze code, omdat ik aan de hand van een array alleen de geseleceerde kolomnamen wil updaten dat uit $fieldArr komt:


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?
Veldnamen staan nooit tussen aanhalingstekens.

Doe het met of zonder ` en dan consequent :

 'UPDATE producten SET `' . $value . '` = ? WHERE `id` = ?'




Wat is het praktisch nut van lege strings?

$_GET[''.$value.'']
Adoptive Solution op 15/06/2022 13:11:32

Veldnamen staan nooit tussen aanhalingstekens.

Doe het met of zonder ` en dan consequent :

 'UPDATE producten SET `' . $value . '` = ? WHERE `id` = ?'


Dit geeft dezelfde fout, had ik eerder geprobeert




Probeer hem eens zo:


<?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();
                }
            }
        }
    }
}
?>
kun je anders de error naar voren halen?

<?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;
}
?>

Reageren