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
Maar ingewikkelde queries (select met een zooi joins en een uitgebreide where) schrijf ik ook liever:
select x.dit,y.dat,z.zus
from tabel x
join andere_tabel y on y.dit = x.dat
left join nog_een_tabel z on z.iets = y.iets and z.anders = :anders
where x.voornaam = :voornaam
and y.voornaam = :voornaam
Ik zal een stukje code geven. Wel moet alles in het formulier opgevangen worden zodat geen injectie plaats kan vinden. Als je wachtwoorden gebruikt, dan deze versleuteld, hash, opslaan.
Stappen:
1. Maak verbinding met de database
2. Hier een voorbeeld voor toevoegen en check in tabel met als naam members
$username=$_POST['username'];
$email=$_POST['email'];
$bedrijf=$_POST['bedrijf'];
$telefoon=$_POST['telefoon'];
$adres=$_POST['plaats'];
$naam=$_POST['naam'];
$wachtwoord=$_POST['wachtwoord'];
//$active="Yes or No, from select";
$active=$_POST['actief'];
// standard no privileges as administrator, no editing possible
$admin="No";
//maak nu hash van wachtwoord aan
$wachtwoord=password_hash($wachtwoord, PASSWORD_BCRYPT);
$ad="insert into members(username,password,email,naam,bedrijf,adres,telefoon,active,admin) values(?,?,?,?,?,?,?,?,?)";
$stmt= $mysqli->prepare($ad);
$stmt->bind_param("sssssssss",$username,$wachtwoord,$email,$naam,$bedrijf,$adres,$telefoon,$active,$admin);
$stmt->execute();
$newId = $stmtins->insert_id;
$stmt->close();
In $newId weet je de toegevoegde regel.
Succes met het leren.
Dank voor alle hulp bij mijn probleem
Het probleem is inmiddels opgelost door mijn provider.
Ik denk dat daar iets niet goed was want nu gaat het wel goed.