PHP versus MySQL

Er zijn wel PHP functies om informatie over een type veld te krijgen, zoals mysql_field_type () maar die leveren niet de info die ik wil hebben. Die vertelt me wel DAT het een enum is, maar niet WAT er in die enum aan mogelijke waarden zit.

Gelukkig biedt MySQL uitkomst. Met het commando DESCRIBE, of SHOW COLUMNS FROM kun je informatie opvragen over kolommen in je db. De syntax verschilt enigszins (geen idee waarom). Die van DESCRIBE is korter en zonder quotes.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
DESCRIBE artikelen status
+------+---------------------------------------+----+----+---------+-----+
|Field  |Type                                           |Null |Key|Default  |Extra|
+------+---------------------------------------+----+----+---------+-----+
|status|enum('nog niet binnen','nog niet ...|      |      |bewaren|       |
+------+---------------------------------------+----+----+---------+-----+

of zo (geeft precies hetzelfde resultaat):
SHOW COLUMNS FROM artikelen LIKE 'status'
+------+---------------------------------------+----+----+---------+-----+
|Field  |Type                                           |Null |Key|Default  |Extra|
+------+---------------------------------------+----+----+---------+-----+
|status|enum('nog niet binnen','nog niet ...|      |      |bewaren|       |
+------+---------------------------------------+----+----+---------+-----+

Kijk, da's interessant! Bij 'Field' krijg ik keurig de naam van mijn enum veld en bij 'Type' de inhoud :-) Nu kan ik met PHP aan de gang. De code voor verbinden met en selecteren van de database sla ik hier even over:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
  // query opstellen
  $sql = "DESCRIBE artikelen status";
  if (!($res = mysql_query ($sql))) {
    trigger_error (mysql_error ());
  }

  else {
    // we weten zeker dat het om 1 record
    // gaat, dus geen while loop nodig

    $obj = mysql_fetch_object ($res);
    $name = $obj->Field;
    $enums = $obj->Type;
  }

?>

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Inleiding
  2. PHP versus MySQL
  3. Regex en Explode
  4. Functie
  5. Tot slot

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.