Werken met ODBC en PHP

De MySQL functies en de ODBC functies van PHP lijken veel op elkaar. De belangrijkste:

odbc_connect & mysql_connect
Omschrijving Maak een verbinding met database
odbc_close & mysql_close
Omschrijving Sluit een verbinding
odbc_exec & mysql_query
Omschrijving Voer SQL query uit
odbc_fetch_object & mysql_fetch_object
Omschrijving Fetch resultaten naar een object



Code


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
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<!doctype html public "-//W3C//DTD HTML 4.01//EN">

<html>

   <head>
      <title>ODBC test</title>
   </head>

   <body>
        <?php
            // de verbinding tot stand brengen
            $connectie = odbc_connect('boeken','','');
            // controlleren of er een connectie is
            if (!$connectie)
            {

                 exit("<pre>Er is een fout opgetreden tijdens het maken van de verbinding met de database.</pre>");
             }

            // schrijf je SQL query
            $sql = "SELECT * FROM auteurs";
            // voer de query uit
            $resultaat = odbc_exec($connectie,$sql);
            // controlleer of alles goed is verlopen
            if (!$resultaat)
            {

                exit("<pre>Fout tijdens het uitvoeren van de SQL query</pre>");
            }

            // opmaak voor resultaten
            echo "\t\t<table>\r\n";
            echo "\t\t\t<tr><th>Naam</th><th>Biografie</th></tr>\r\n";
            // fetch de resultaten
            while ($record = odbc_fetch_object($resultaat))
            {

                echo "\t\t\t<tr><td>" . $record->naam . "</td><td>" . $record->biografie . "</td></tr>\r\n";
            }

            // opmaak voor resultaten
            echo "\t\t</table>\r\n";
            // sluit de verbinding
            odbc_close($connectie);
        ?>

   </body>
</html>



Stap voor stap: de verbinding tot stand brengen
Het tot stand brengen van de verbinding gaat als volgt.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
            // de verbinding tot stand brengen
            $connectie = odbc_connect('boeken','','');
            // controlleren of er een connectie is
            if (!$connectie)
            {

                 exit("<pre>Er is een fout opgetreden tijdens het maken van de verbinding met de database.</pre>");
             }

?>

We doen odbc_connect(naam van de verbinding, gebruikersnaam, wachtwoord). De velden gebruikersnaam en wachtwoord zul je niet vaak nodig hebben maar zijn wel verplicht. Laat deze dus gewoon leeg. Het resultaat zal FALSE zijn (de verbinding is dan mislukt) of het nummer van de connectie. De slaan we op in de variabelen $connectie.
Vervolgens controleren we of er een verbinding is (we controleren dus of $connectie == FALSE), zoniet dan stoppen we vanaf hier het script en weergeven nog een laatste tekst.
Krijg je een fout controleer dan eerst of je de database nog niet open hebt staan.

Stap voor stap: een query uitvoeren
We voeren nu de query uit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
            // schrijf je SQL query
            $sql = "SELECT * FROM auteurs";
            // voer de query uit
            $resultaat = odbc_exec($connectie,$sql);
            // controlleer of alles goed is verlopen
            if (!$resultaat)
            {

                exit("<pre>Fout tijdens het uitvoeren van de SQL query</pre>");
            }

?>

Als eerste schrijven we de SQL code op en slaan we deze op in de variabelen SQL, dit is in principe niet nodig maar is wel zo duidelijk.
Vervolgens voeren we de code uit via odbc_exec(). Belangrijk is dat we hier eest het nummer van de verbinding geven en dan de query. Beide parameters zijn verplicht!
Indien de SQL code een fout bevat zal deze FALSE teruggeven anders resultaten. Dit slaan we op in $resultaten.
In de volgende stap controleren we of alles is goed gegaan (we controleren dus of $resultaat == FALSE). Iets mis? Dan stoppen we PHP en weergeven we nog een laatste bericht.

Stap voor stap: resultaten weergeven
Hier is maar één ding anders in vergelijking met MySQL. Het woordje odbc in plaats van mysql
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
            // opmaak voor resultaten
            echo "\t\t<table>\r\n";
            echo "\t\t\t<tr><th>Naam</th><th>Biografie</th></tr>\r\n";
            // fetch de resultaten
            while ($record = odbc_fetch_object($resultaat))
            {

                echo "\t\t\t<tr><td>" . $record->naam . "</td><td>" . $record->biografie . "</td></tr>\r\n";
            }

            // opmaak voor resultaten
            echo "\t\t</table>\r\n";
?>

We kiezen de voor om eerst de tabelkoppen weer te geven en dan met een while en fetch_object de resultaten in te voegen.
Uiteraard kan je ook van andere functies gebruikmaken zoals: odbc_fetch_row(), odbc_result(), odbc_fetch_array() en odbc_fetch_into()

Stap voor stap: de verbinding sluiten
Is niet verplicht maar wel aanbevolen en netjes de verbinding afsluiten
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
            // sluit de verbinding
            odbc_close($connectie);
?>

Er kan ook gebruik worden gemaakt van odbc_close_all(). Deze sluit alle verbindingen.

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Inleiding
  2. ODBC op de test server
  3. ODBC functies
  4. ODBC op de server
  5. meer...
  6. Werken met ODBC en PHP

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.