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
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
<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.
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:
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
2
3
4
5
6
7
8
9
10
11
12
// 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
Er kan ook gebruik worden gemaakt van odbc_close_all(). Deze sluit alle verbindingen.