nl en de fi id nl nl nl nl nl en en nl nl en en nl nl nl en en nl en en nl nl en en nl it nl nl nl en en nl nl nl fi en nl nl en en nb nl nl nl nl nl nl nl nl nl nl nl nl ja en de fa tr en tr en en en en de de en en en en en en nl nl nl en en en en de en de en en en hu en tr en pl en en en nl nl nl en nl nl en nl nl nl es nl nl fa nl nl nl en nl nl nl en nl fr en nl it pl en it de en nl nl nl en en en en nl en nl nl nl en nl en nl en nl
Domeinnaam Je adres op internet met extensies als .nl & .com. Mail Professioneel e-mailen met je eigen domein – veilig en reclamevrij. Mailarchivering Automatische en veilige archivering voor je bedrijf.
SSL-certificaten Bescherm je website optimaal dankzij versleuteling Microsoft 365 Je documenten altijd bij de hand met Office 365.
Websites voor beginners en professionals.
Sitebuilder Perfect voor beginners: zonder voorkennis je eigen website. Webshop Snel en professioneel online verkopen.
Snel, veilig en krachtig: hosting & WordPress van professionals voor professionals.
WordPress hosting In een handomdraai je eigen, veilige WordPress site. Hosting Perfect voor professionele en supersnelle websites. Hosting Mini Ons mini-hostingpakket – voor een mini-prijs.
WooCommerce Je eigen webshop maken met WordPress
Monitor het succes en verbeter de performance van je website
STRATO marketingRadar Het perfecte starterspakket voor online marketing. STRATO rankingCoach Snel en simpel een toppositie in zoekmachines als Google. STRATO listingCoach Verschijn met één klik in de belangrijkste online directory's.
STRATO adCoach Maak en beheer eenvoudig Google Ads-campagnes.
Sneller gaat niet: 100% merk-hardware voor virtual en dedicated systemen.
VPS Linux Krachtige Linux VPS met SSD-power & Plesk. VPS Windows VPS met véél RAM & Windows Datacenter-licentie. Cyber Protect Veiligheid dankzij professionele back-ups & anti-malware
Dedicated Server Linux Eigen hardware met root-rechten – voor veeleisende hosting. Dedicated Server Windows Merk-hardware met Administrator-toegang. ServerCloud Flexibele, schaalbare servers in de cloud.
Bestanden online opslaan & automatisch back-uppen naar de Europese cloud.
HiDrive Sla je bestanden op in de Europese cloud. HiDrive Business Veilig teamwork met je online harde schijf. HiDrive S3 De object storage voor je bedrijfsdata.
Cyber Protect Veiligheid dankzij professionele back-ups & anti-malware
CRUD – zo werkt het framework
CRUD als basis voor gegevensbeheer
CRUD-frameworks: toegangslaag voor databanken
Zo ontwikkel je een CRUD-PHP-grid voor je database
CRUD als basis voor gegevensbeheer
De term CRUD is nauw verbonden met het beheer van digitale gegevens. CRUD is een afkorting, afgeleid van de namen van de vier fundamentele bewerkingen in databasetoepassingen:
Read of Retrieve (gegevensrecord lezen)
Delete of Destroy (gegevensrecord verwijderen)
Eenvoudig gezegd bestaat de term CRUD uit alle functies die een gebruiker nodig heeft om gegevens aan te maken en te beheren. Verschillende datamanagementprocessen zijn gebaseerd op CRUD, waarbij de operations (bewerkingen) specifiek zijn aangepast aan de eisen van het systeem en de gebruiker, ongeacht of het gaat om het beheren van databases of het gebruik van applicaties. De operations vormen de typische en onmisbare toegangstools waarmee experts databaseproblemen kunnen controleren, terwijl CRUD voor een gebruiker betekent dat ze op elk moment een account kunnen aanmaken (create) en gebruiken (read), bijwerken (update) of verwijderen (delete). In verschillende taalomgevingen worden CRUD-bewerkingen overigens verschillend uitgevoerd, zoals weergegeven in de volgende tabel:
CRUD-frameworks: toegangslaag voor databanken
Als afzonderlijke gegevensobjecten met een grafische gebruikersinterface worden gevisualiseerd en via de vermelde CRUD-bewerkingen kunnen worden gewijzigd, spreken we van een CRUD-framework of CRUD-grid. De interfaces zijn meestal HTML-interfaces. Een CRUD-framework vereist meerdere transactiestappen, waardoor bijvoorbeeld gegevens niet via eenvoudige invoer worden overgedragen, maar pas na het klikken op een knop ‘Opslaan’ of ‘Doorgaan’. Je kunt de bewerkingen van een CRUD-framework ook met een grote vertraging laten uitvoeren, zonder het datarecord in deze periode voor andere gebruikers te vergrendelen. Dit is met name van belang in systemen waarin meerdere gebruikers dezelfde gegevens tegelijkertijd moeten kunnen lezen.
Voor de uitvoering van de operations worden zogenaamde persistentielagen gebruikt, die meestal als uitbreidingen (modules) in het framework zijn opgenomen of daarin kunnen worden geïmplementeerd. Deze splitsen de relationele, tabelachtige weergave van de datasets af en presenteren ze in plaats daarvan op objectgeoriënteerd niveau. CRUD-frameworks maken de ontwikkeling en het gebruik van applicaties eenvoudiger door de toegang tot het gebruikte databanksysteem te optimaliseren. Er bestaan talloze frameworks met een CRUD-concept, gebaseerd op verschillende talen en platforms. We geven een paar voorbeelden:
JDBC (The Java Database Connectivity), Hibernate, JBoss Seam, Isis
Yii, CakePHP, Zikula, Symfony, TYPO3 Flow
Zo ontwikkel je een CRUD-PHP-grid voor je database
Hieronder lees je hoe je een bootstrap-interface kunt maken voor het meest gebruikte databasesysteem MySQL, zodat toegang via CRUD-operations mogelijk wordt. Ook bespreken we de create-operation. Om de databasetabellen op de juiste wijze te manipuleren, gebruiken we de scripttaal PHP aan de serverzijde met behulp van een extensie, PDO (PHP Data Objects).
1. De eerste stap is het maken van een eenvoudige databasetabel die we later in deze tutorial via CRUD-toegang manipuleren. Hiervoor importeer je de volgende tabel met voorbeelden in je MySQL-database:
CREATE TABLE `customers` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `name` VARCHAR( 100 ) NOT NULL , `email` VARCHAR( 100 ) NOT NULL , `mobile` VARCHAR( 100 ) NOT NULL ) ENGINE = INNODB;
De tabel is nodig om gebruikersgegevens te verzamelen – naam, e-mailadres en mobiel nummer. Elke invoer ontvangt automatisch een primaire sleutel (AUTO_INCREMENT PRIMARY KEY), ofwel een eigen individuele ID.
2. Daarna is het noodzakelijk om het aanmaken en verbreken van de verbinding met de database te regelen. Maak een PHP-bestand aan met de naam database.php en voeg het volgende script toe met de klasse ‘Database’ om de databaseverbindingen te beheren:
getMessage()); } } return self::$cont; } public static function disconnect() { self::$cont = null; } }
Om de hier gedefinieerde klasse voor databasetoegang met PDO te gebruiken, moet je de exacte waarden specificeren voor de vier items $dbName (naam van de gebruikte database), $dbHost (naam van de host waarop de database draait - meestal localhost), $dbUsername (naam van de toegangsgebruiker) en $dbUserPassword (wachtwoord van de toegangsgebruiker).
Aan de klasse ‘Database’ zijn in dit script drie functies toegewezen: __construct() is de constructor van de klasse en herinnert gebruikers eraan dat initialisatie (de toekenning van een beginwaarde) niet is toegestaan. Bij connect() gaat het om de hoofdfunctie van de klasse die de verbinding regelt. De tegenhanger is disconnect() waarmee je de verbinding dus weer verbreekt.
3. Aangezien CRUD-bewerkingen alleen met de juiste interface kunnen worden uitgevoerd, moet het basis-grid nu met Twitter Bootstrap worden aangemaakt. De huidige versie van het framework vind je op de officiële website. Pak Bootstrap uit in de map waar database.php zich bevindt en maak een bestand aan met de naam index.php. Daarin schrijf je nu de volgende interface:
Mijn CRUD-PHP-grid             Naam   E-mailadres   Mobiel nummer     >    query($sql) as $row) { echo ' '; echo ' ' . $row['name'] . ' '; echo ' ' . $row['email'] . ' '; echo ' ' . $row['mobile'] . ' '; echo ' '; } Database::disconnect(); ?>
In het  -gedeelte zijn de CSS- en JavaScript-bestanden van Bootstrap opgenomen, in het  -gedeelte de eerder aangemaakte database.php, inclusief de verzoeken om een PDO-verbinding tot stand te brengen (Database::connect()) en om de corresponderende data (SELECT) te verkrijgen. Daarnaast bevat het bestand de HTML-tabel   met de drie kolommen Naam, E-mailadres en Mobiel nummer, die ook in de database zijn opgeslagen.
Om de basis te voltooien, moeten we nu de verschillende CRUD-operations realiseren. De create-operation implementeren we bijvoorbeeld met een extra HMTL-pagina met formuliervelden voor het invoeren van de gebruikersgegevens, die gekoppeld is aan index.php en kan worden bereikt via een knop die is toegevoegd aan de bootstrap-interface. We houden het eenvoudig en maken deze knop door index.php opnieuw te openen en de volgende code toe te voegen aan de tweede  -element in de tabel:
Je ziet al in het codefragment dat er een link naar het bestand create.php is, die nog niet bestaat. Een test van het vorige bootstrap-grid zal daarom de knop weliswaar weergeven, maar als je er dan op klikt, zie je alleen een foutpagina. Om de create-functie te programmeren, maak je het genoemde create.php-bestand aan en voeg je het volgende eerste deel van de code in:
Create a Customer       ">  Naam     ">              ">  E-mailadres     ">              ">  Mobiel nummer     ">                Create   Back
De code genereert het HTML-formulier waarin de individuele gegevens van naam, mobiel nummer en e-mailadres kunnen worden ingevoerd. Voor elk invoerveld bouwen we bovendien een PHP-variabele in, die in combinatie met de volgende uitbreiding van de code (die je in create.php voor de HTML-code plaatst) foutmeldingen genereert, voor zover het veld vrij blijft tijdens de invoer:
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "INSERT INTO customers (name,email,mobile) values(?, ?, ?)"; $q = $pdo->prepare($sql); $q->execute(array($name,$email,$mobile)); Database::disconnect(); header("Location: index.php"); } } ?>
Nu heb je een create.php-pagina aangemaakt die wordt geopend als je op de create-knop klikt en waarmee je de gebruikersinformatie kunt invoeren. Het script zorgt ervoor dat alle ingevoerde gegevens en validatiefouten worden geregistreerd, dat foutmeldingen worden weergegeven als deze onjuist zijn ingevoerd en dat de gegevens bij de opgegeven database terechtkomen.