Hallo,
ik probeer in een database gegevens in te voeren met php. Wat ik ook probeer, er komen geen gegevens in de database terecht.
Handmatig heb ik gegevens ingevoerd via phpMyAdmin.
Deze gegevens kan ik met php uitlezen. Met dezelfde connectie gegevens lukt het niet om insert aan de praat te krijgen. De database heeft 3 velden:
id (A/I), voornaam en achternaam
Dit is het programma
<?php
$con =mysqli_connect($host,$user,$password,$dbname);
if(!con)
{echo 'niet verbonden met de server';}
if (!mysqli_select_db($con,stichtin15_project))
{echo 'geendatabase geselecteerd';}
$voornaam='Peter';
$achternaam='Janssen';
$sql= "INSERT INTO adressen (voornaam,achternaam)
VALUES ($voornaam','$achternaam')";
if (!msqli_query($con,$sql))
{echo 'niet ingevoerd';}
else
{echo 'ingevoerd';}
De echo "niet ingevoerd" of de echo "ingevoerd" komt niet in beeld
De echo "niet ingevoerd" of de echo "ingevoerd" komt niet in beeld
Dit is een indicatie dat er het e.e.a. fout gaat, maar de foutmeldingen mogelijk niet getoond worden.
De structuur van de code laat ook nogal wat te wensen over. Immers, als een bewerking fout gaat, waar je netjes op controleert (bijvoorbeeld bij het maken van een verbinding), ga je vervolgens wel door met de volgende stap, of de vorige stap nu goed of fout was. Dat heeft eigenlijk niet zoveel zin.
Waar het waarschijnlijk misgaat is regel 7, de tweede parameter van mysqli_select_db() -stichtin15_project- staat niet tussen (enkele) quotes. Daarnaast is deze bewerking helemaal niet nodig, omdat je bij het maken van de connectie al een database selecteert middels de 4e parameter van mysqli_connect() - $dbname.
De volgende snippet kan handig zijn voor bij de ontwikkeling van code, dit zort ervoor dat meldingen worden gemeld + weergegeven op het scherm, zet daartoe de volgende code aan het begin van elk script:
Daarbij heeft @Ivo ook een punt. En laten we ook vooral het instellen van de character encoding niet vergeten, opdat je data niet corrupt raakt en escaping ook naar behoren functioneert.
Regel 5 is aangepast. Geen verbetering
Omdat regel 19 er alleen maar als een soort bevestiging in zat is die weggehaald. Geen verbetering
Ik gebruik Dreamwaever als editor
Dreamweaver is niet echt een PHP-editor. Ik zou het gebruik ervan eerder gezegd afraden.
Ikzelf gebruik NetBeans IDE. Ook is Eclipse of PHP Storm een goede aanrader.
Ik vind dit juist altijd extra onleesbaar worden, omdat je dan door de brij aan aanhalingstekens ook niet meer ziet welke nou bij welke hoort ... Een goede editor (wederom) toont de variabelen in een string gewoon in een ander kleurtje, en dan zie je precies wat je aan het doen bent (alhoewel het in dit geval sowieso al not-done is ivm SQL injectie).