beste mensen,

Ik probeer een tekst in een database te krijgen. Ik krijg de foutmelding:

mysqli_error() expects exactly 1 parameter, 0 given in

de fout ontstaat bij het uitvoeren van de query:
if(!$res=mysqli_query($dblink, $sql))

hierbij is $sql:

<?php
	function test_input($data) {
		$data = trim($data);
		$data = stripslashes($data);
		$data = htmlspecialchars($data);
		return $data;		
	}
        $input['omschrijving']=test_input($_POST['omschrijving']);
	$input['omschrijving']=mysqli_real_escape_string($dblink,$input['omschrijving']);
	$sql="INSERT INTO m_boek (titel, auteur, jaar, taal, sterren, omschrijving, voorkant, bezit)	
		VALUES
			('".$input['titel']."',
			'".$input['auteur']."',
			'".$input['jaar']."', 
			'".$input['taal']."', 
			'".$input['sterren']."', 
			'".$input['omschrijving']."',
			'".$input['voorkant'].".jpg',
			'".$input['bezit']."')";
?>

De code is nog veel langer, maar dat is verder niet relevant. De waarde van $sql is bij de run:

INSERT INTO m_boek (titel, auteur, jaar, taal, sterren, omschrijving, voorkant, bezit)
VALUES
('titel',
'auteur',
'2014',
'NL',
'1',
'$input[\'omschrijving\'] \'en enkele\' en &quot;dubbele&quot; en &lt; en &gt;',
'test2.jpg',
'0')

De regel van omschrijving komt overeen met hetgeen ik in heb gevoerd via een inputbox, te weten:
$input['omschrijving'] 'en enkele' en "dubbele" en < en >

Dus op zich lijkt het me correct.

Maar waar gaat het dan fout?

Alvast bedankt,

Jop
ik doe inderdaad een aantal bewerkingen met de var. omdat ik de var eerst nog gebruik om de invoer te laten bevestigen door de gebruiker gebruik ik de functie. dan decodeer ik de special characters (htmlspecialchars_decode) en om veilig in de database op te slaan gebruik ik mysqli_real_escape_string. htmlentities gebruik ik als ik de data weer uit de database haal. Als het minder omslachtig kan, dan hoor ik het graag. Ik hobby ook maar wat en probeer iets veilig te maken. Maar gelukkig is allemaal voor mezelf ;-)

Reageren