INSERT wil niet werken

Status
Niet open voor verdere reacties.

weswillem

Gebruiker
Lid geworden
8 nov 2011
Berichten
310
Onderstaande gegevens worden niet opgeslagen.
Hierbij is lid en rechten INT.
date_lid = DATETIME

Heb van alles geprobeerd maar hij wil hem niet weg schrijven.
Krijg elke keer de melding - Sorry, onverwachte fout met de database.

PHP:
$sql = "INSERT INTO leden";
        $sql .= " (naam, voorl, gebruikersnaam, pass, pass2, , email, ip, lid, rechten, valideermail, date_lid )";
        $sql .= " VALUES ";
        $sql .= " ("'.$naam.'", "'.$voorl.'", "'.$gebruikersnaam.'", "'.$passwordmd5.'", "'.$passopvraag.'", "'.$email.'", "'.$ip.'", "'.$activeren.'" , "'.$rechten.'", "'.$valideermail.'" , "'.$datum.'");";

        $result2 = mysqli_query($conn,$sql);
        if ( $result2 ) {
		echo 'De mederker is opgenomen in onze database'.PHP_EOL;
	} else {
		echo 'Sorry, onverwachte fout met de database.'.PHP_EOL;
	}
 
Laatst bewerkt:
1) Da's een mysql vraag, geen PHP vraag.
2) Je hebt twee comma's na pass2.
 
Laatst bewerkt:
1) Da's een mysql vraag, geen PHP vraag.
Het is NIET trouwens beter om `` om je kolomnamen heen te zetten.
Even aangepast. Want `` zijn geen standaard in SQL. Het is zelfs ranzig, en velen raden het af.

Verder kan het geen kwaad om foutafhandeling toe te voegen. Kijk eens naar mysqli_error($conn).
Ook is het zinvol om je $sql eens te echo'en. Zo kan je ook vaak zien wat er fout is.
 
Gebruikmakend van die errorcode, gaf dit het volgende resultaat.
Ben toch benieuwd wat er fout gaat dan. De kolom staat in de db en ook in de sql.
Ik zie m niet.
PHP:
Error description: Unknown column 'valideermail' in 'field list'INSERT INTO leden ( voorl, naam, email, gebruikersnaam, pass, pass2, ip, lid, valideermail, date_lid) VALUES ( 'P.','Test', 'test@ziggo.nl', 'P.T', '6693a7aacb8a2e74c6f5fe91bc39864b', '25c852f678e5d59f4a90fd93aa95fb04', '127.0.0.1', '0' , 'e555ebe0ce426f7f9b2bef0706315e0c', '2016-08-04')Sorry, onverwachte fout met de database.
 
Ik vrees eerder van niet. Dubbel-check dit even...
 
Haha, dacht het wel, maar ????
 

Bijlagen

  • db.jpg
    db.jpg
    101,4 KB · Weergaven: 22
Dit is wel heel raar.
Dan is je tabel ergens corrupt binnen MySQL, denk ik.
 
@PHP4U

Check dubbel check.
Wat blijkt field list bevatte aan het begin een spatie.
Bedankt voor het meedenken.
Als mede voor de errorcode tip.
 
@PHP4U

Check dubbel check.
Wat blijkt field list bevatte aan het begin een spatie.
Bedankt voor het meedenken.
Als mede voor de errorcode tip.
Fijn dat het opgelost is :)
 
tja punten en comma's nu ik ben niet met alles eens wat hiervoor gezegt is maar ik voeg het volgende eraan toe

PHP:
$sql = 'INSERT INTO `leden`';
        $sql .= ' (`naam`, `voorl`, `gebruikersnaam`, `pass`, `pass2`, `email`, `ip`, `lid`, `rechten`, `valideermail`, `date_lid` )';
        $sql .= ' VALUES ';
        $sql .= ' ("'.$naam.'", "'.$voorl.'", "'.$gebruikersnaam.'", "'.$passwordmd5.'", "'.$passopvraag.'", "'.$email.'", "'.$ip.'", "'.$activeren.'" , "'.$rechten.'", "'.$valideermail.'" , "'.$datum.'");';
 
        $result2 = mysqli_query($conn,$sql);
        if ( $result2 ) {
        echo 'De mederker is opgenomen in onze database'.PHP_EOL;
} else {
        echo 'Sorry, onverwachte fout met de database.'.PHP_EOL;
}
reden single cotes performatie
reden ` veiligheid en voor grotere projecten en installers en cms hierdoor kan je ook keywords gaan gebruiken en of als een woord keywoord word gaat je systeem er niet uit wat in het verleden al bij sommigen is gebeurt.
ik heb het meer voor de pdo ipv mysqli maar het is ieder zijn ding.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan