Hallo,

Ik ben bezig met het maken van een loginscript aan de hand van PDO. Dit in de plaats van mysql. Ik heb de onderstaande code, en alles is 'foutloos'.

Ik krijg geen foutmeldingen, en alle varriabelen bestaan (mits formulier ingevuld). Echter, blijft de database wel leeg. De connectie is er wel gewoon, anders had ik daar een foutmelding van gekregen.

De code:

$db = new PDO('mysql:host=localhost;dbname=familie', 'agenda_naam', 'agenda');
$naam = $db->quote($_POST['naam']);
$email = $db->quote($_POST['email']);
$taal = $db->quote($_POST['taal']);


$sql = "
    INSERT INTO gebruikers (naam, email, land,salt,IP)
    VALUES ('".$naam."','".$email."','".$taal."','".$password."','".$salt."','".$userip."')";
    
$results = $db->exec($sql);



Hopelijk kunnen jullie me zeggen wat ik fout doe, want heb er al anderhalf uur mee lopen klooien en kom er echt niet uit.

Groeten,
Bart
ik heb geen bal verstand van PDO maar met $db->quote() zet je de string tussen quotes neem ik aan, en vervolgens doe je dat zelf nog eens met VALUES ('".$naam."',etc. etc.

misschien moet je even je $sql echo-en

en waar is je foutafhandeling voor $db->exec() want die had je kunnen vertellen dat ie jouw query niet begrepen heeft. (er van uitgaande dat ik gelijk heb)

gr Frank
Als ik de $sql echo, dan staat er het volgende:

INSERT INTO gebruikers (naam, email, land,salt,IP) VALUES (''mijnnaam'',''[email protected]'',''nederlands'','a51bedd7a4d23b8ac8da001879b8fd2bd65d43bf','vRLyeOVAJQ6fQWRgUykRMG4KOLc9ONjMadtSG1j8','127.0.0.1')

lijkt mij niet foutief...

Groeten,
Bart
Beste Bart,

Toch zou ik de single qoutes bij de eerste drie variaelen weg halen. In je echo zie je bij deceerstecdrie variabelen namelijk geen dubbele quotes maar twee single qoutes.

Groet, Erwin
Ik heb geen idee waar de dubbele quote vandaan komt, maar ook met enkel is het niet effectief...

Groeten,
Bart
Je maakt behoorlijk harde en, helaas, verkeerde conclusies:

Ik heb de onderstaande code, en alles is 'foutloos'. (...)
Ik krijg geen foutmeldingen (...)
De connectie is er wel gewoon, anders had ik daar een foutmelding van gekregen.

Je geeft nergens weer dat je een foutmelding wilt tonen, hoe moet PDO dan weten hoe hij een foutmelding moet tonen? Gebruik foutafhandeling zoals hier beschreven wordt: http://phptuts.nl/view/27/4/
Hmm, dacht dat hij dat wel deed aangezien hij het wel aangeeft als hij geen verbinding maakt. Ik denk dat aan de hand daarvan het probleem opgelost kan worden?

Groeten,
Bart

[size=xsmall]Toevoeging op 09/10/2012 08:40:03:[/size]

Het werkt nu allemaal.

Ik had 5 namen van rijen aangegeven, terwijl ik 6 value's had aangegeven. Logisch dat dat niet werkt. Heb het werkend gekregen door het in de mysql via phpmyadmin te zetten. Die gaf de fouten wel weer.

Groeten,
Bart Roelofs

Reageren