logo

Extra Block Types (EBT) - Nieuwe Layout Builder ervaring❗

Extra Block Types (EBT) - gestileerde, aanpasbare bloktypes: Slideshows, Tabs, Cards, Accordions en vele andere. Ingebouwde instellingen voor achtergrond, DOM Box, javascript-plugins. Ervaar vandaag al de toekomst van layout building.

Demo EBT-modules Download EBT-modules

❗Extra Paragraph Types (EPT) - Nieuwe Paragraphs ervaring

Extra Paragraph Types (EPT) - analoge op paragrafen gebaseerde set modules.

Demo EPT-modules Download EPT-modules

Scroll

PHP-lessen - les 3.1 - Werken met MySQL-databases. Tabellen aanmaken.

09/10/2025, by Ivan

In de vorige les hebben we verbinding gemaakt met de database. In deze les gaan we tabellen aanmaken voor onze toekomstige website. Laten we beginnen met het toevoegen van de naam van de gewenste database in de klasse simpleCMS:

class simpleCMS {  // beheersklasse

  public $host = 'localhost'; // variabelen voor databaseverbinding
  public $username = 'root';
  public $password = '';
  public $db = 'testDB';

Nu moeten we deze database aanmaken op onze MySQL-server. Als je ook Denwer gebruikt, zit phpMyAdmin daar standaard in. Ga via de link naar phpMyAdmin en maak een nieuwe database aan:

PhpMyAdmin

Nu we de instellingen hebben toegevoegd en de database hebben aangemaakt, kunnen we de verbinding met de MySQL-server via PHP aanpassen. We wijzigen de verbindingsmethode als volgt:

  public function connectDB() {
	$link = mysql_connect($this->host, $this->username, $this->password); // verbinding maken met MySQL-server
	if (!$link) {
		die('Verbindingsfout: ' . mysql_error());
	}    
	mysql_select_db($this->db) or die("Kan database niet vinden. " . mysql_error()); // database selecteren
	return $link;
  }

Als alles goed werkt, wordt er geen foutmelding weergegeven. Nu gaan we een tabel aanmaken. Daarvoor voegen we een nieuwe methode buildDB() toe, die we direct zullen aanroepen vanuit de methode connectDB().

  public function connectDB() {
	$link = mysql_connect($this->host, $this->username, $this->password); // verbinding maken met MySQL-server
	if (!$link) {
		die('Verbindingsfout: ' . mysql_error());
	}    
	mysql_select_db($this->db) or die("Kan database niet vinden. " . mysql_error()); // database selecteren
        $this->buildDB(); // aanroepen van een methode binnen dezelfde klasse
	return $link;
  }
  
  public function buildDB(){
  
  }

Telkens wanneer we verbinding maken, kunnen we in de methode buildDB() controleren of alle benodigde tabellen aanwezig zijn. Hiervoor sturen we een query naar de database:

  public function buildDB(){
    $sql = 'CREATE TABLE IF NOT EXISTS messages ( 
			  title		VARCHAR(150),
			  bodytext	TEXT,
			  created		VARCHAR(100)
			)';
			
    return mysql_query($sql);    
  }

Laten we nu bekijken hoe dit werkt.

Eerst schrijven we de SQL-query in een stringvariabele, en vervolgens geven we die variabele door aan de functie mysql_query(), die de query naar de database stuurt.

Onze SQL-query begint met de operator CREATE TABLE — dit betekent het aanmaken van een nieuwe tabel. Vervolgens voegen we de voorwaarde IF NOT EXISTS toe, om te voorkomen dat een tabel met dezelfde naam (in dit geval messages) opnieuw wordt aangemaakt als deze al bestaat.

Tussen de haakjes na de tabelnaam definiëren we de velden van de tabel die worden aangemaakt. In ons geval zijn dat de velden title, bodytext en created. Na elke veldnaam volgt het gegevenstype. VARCHAR(150) betekent een tekstveld van maximaal 150 tekens, terwijl TEXT een tekstveld is waarin hele artikelen of langere teksten kunnen worden opgeslagen.

Als je nu het bestand simpleCMS.php opslaat en index.php uitvoert, wordt de tabel messages automatisch aangemaakt.

We zullen deze tabel in de volgende les gebruiken. Als je vragen of fouten tegenkomt, laat dan gerust een reactie achter.