Index  HTML  CSS  ASP  PHP  VBScript
 Javascript  SQL  Links  Contact  Gastboek  

  Inleiding PHP
  Inleiding Variabelen
  Variabelen.
  Array
  Operators
  Controle Structuren
  Include
  Datum
  Session
  Cookies
  Mail
  Forms
  Functie
  PHP functies
  MySQL
  Connect
  Gegevens opvragen
  Insert data
  Delete
  Selectbox

--Scripts--
  Simpel Gastenboek
  Login


Insert data

Na een inleiding in het leggen van een verbinding met een database, ga ik nu in op een uitgebreider voorbeeld. Als je een database hebt, wil je daar gegevens aan gaan toevoegen. Een database is immers een opslagplaats voor heel veel data. En MySql kan heel wat data opslaan.

Eerst moet er een database komen om de gegevens aan te gaan toevoegen. Ik maak hier een tabel genaamd Customer met 4 kolommen (ID, Voornaam, Achternaam, Email) erin. En als primary key dient de kolom ID. De kolom ID heeft als eigenschappen dat elk ID uniek is en een cijfer en dat het automatisch oploopt.

 CREATE TABLE Customer(
 ID int(11) NOT NULL auto_increment,
 Voornaam varchar(50) NOT NULL,
 Achternaam varchar(50) NOT NULL,
 Email varchar(100) NOT NULL,
 PRIMARY KEY (ID)
 );

Tip: Leer jezelf aan vanaf het begin om de gegevens voor het leggen van een verbinding met een MySql database in een apart bestand te zetten. Verandert er later iets, dan hoef je het alleen daar te veranderen.

 DbConnect.php
  <?php
  $host = “mysqlhostname”;
  $dbusername = “username”;
  $password = “password”;
  $db = “databasenaam”;
 
  mysql_connect(“$host”, “$dbusername”, “$password”);
  mysql_select_db(“$db”) or die (“Fout opgetreden bij het maken van een verbinding”);
 ?>

Let goed op de begin en eind tags die aangeven dat het gaat om PHP code. Als je dit niet doet, dan krijgt de bezoeker de tekst precies te zien zoals jij het nu ziet. Dus je wachtwoord en gebruikersnaam liggen dan op straat. De rest moet bekend zijn uit de eerdere les over MySql.

Ik ga nu door met het script om de gegevens te gaan toevoegen aan de database.

 index.php
  <?php
  include(“DbConnect.php”);
 
  if(!empty($_POST)) {
  $_POST['vnm'] = addslashes($vnm);
  $_POST['anm'] = addslashes($anm);
  $_POST['eml'] = addslashes($eml);
 
  $Sql = “INSERT INTO Customer SET Voornaam='$vnm', Achternaam='$anm', Email='$eml'”;
  $Query = mysql_query($Sql) or die(“Niet geslaagd!”);
  echo “DB bijgewerkt”;
 } else {
 ?>
  <h1>Toevoegen Cliënt</h1>
  <form name=”klant” method=”post” action=”<?php echo $PHP_SELF;?>”>
  Voornaam: <input type=”text” name=”vnm”><br>
  Achternaam: <input type=”text” name=”anm”><br>
  E-mail: <input type=”text” name=”eml”><br>
  <input type=”submit” name=”submit” value=”submit”>
  </form>
 <?php } ?>

In het voorbeeld heb ik een formulier gemaakt dat zichzelf verwerkt als er gegevens zijn ingevuld. Allereerst wordt het bestand aangeroepen met de gegevens om verbinding te kunnen maken met de database.

if(!empty($_POST)) {

Hier wordt een if…else… structuur opgezet. Er wordt gecontroleerd of er iets is verstuurd door het formulier. Als dat true is, dan komt de code aan de beurt om te worden verwerkt. Is dit niet het geval, dan wordt het formulier getoond.

Vervolgens worden de variabelen uit het formulier gehaald met behulp van superglobal $_POST en worden er slashes aan toegevoegd. De functie addslashes is al eerder aan de orde geweest. De functie zet voor bijzondere tekens een slash ( / ) neer om te voorkomen dat er problemen komen met SQL. Bijvoorbeeld voor een aanhalingsteken als in O/'Brien Later kunnen de slashes weer verwijderd worden met de functie stripslashes.

Daarna wordt het Sql statement INSERT aangeroepen. Hiermee kun je gegevens gaan toevoegen aan de database. Let daarbij op de juiste plek voor de aanhalingstekens. INSERT vertelt de database welke variabele in welk veld moet komen te staan. De statement wordt in een variabele gestopt. In $Query wordt de opdracht gegeven om de query ook daadwerkelijk te gaan uitvoeren.