28
Tags:
php
Skrevet af
Bruger #4193
@ 18.08.2003
PHP og Microsoft Access er to ting man ikke lige umiddelbart forbinder med hinanden - de fleste bruger MySQL, PostGreSQL eller andre af de gratis databaser.
Men jeg havde et konkret problem - min ISP tog ekstra penge for hver MySQL database man ville have, og med mit spinkle budget kunne jeg lige så godt glemme det. Desuden ville jeg have så mange databaser som jeg ville ha'.
Denne tutorial kræver, at din webserver kører Windows NT eller 2000.
Trin 1: Oprettelse af database
Først og fremmest skal vi have en Access-fil (.mdb).
Lav en tabel med felterne:
fornavn (Tekst)
efternavn (Tekst)
adresse (Tekst)
postnr (Tal)
telefon (Tal)
Kald tabellen PersonTabel og lav to personer - jeg har fx. lavet:
John, Doe, PHP-vej 6, 666, 12345678
Jane, Doe, Access-vej 2000, 2003, 98765432
Gem databasen som PERSON.MDB i den mappe hvor du vil lave din database-powered applikation.
Trin 2: Opret forbindelse til database
Vi vil nu bruge en teknologi, som PHP ikke understøtter direkte, nemlig en ADODB forbindelse gennem COM.
Den laver vi med:
<?php
$db_connection = new COM("ADODB.Connection");
Nu starter PHP automatisk et COM objekt for os, hvor vi kan lave en forbindelse til Access.
Næste trin er at lave forbindelses-strengen:
$db_connstr = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" . getcwd() . "//PERSON.MDB";
Nu vil vi åbne forbindelsen:
$db_connection->open( $db_connstr );
Trin 3: SQL
Nu skal vi så have lavet en SQL-deklaration for hvilke felter vi vil hente:
$rs = $db_connection->execute( "select * from PersonTabel"); ?>
Udskrivning af indhold
Før vi udskriver indholdet skal vi lige gøre det pænt:
<table>
<tr>
<td><b>Fornavn</b></td>
<td><b>Efternavn</b></td>
<td><b>Adresse</b></td>
<td><b>Postnr.</b></td>
<td><b>Telefon</b></td>
</tr>
- og nu skal vi så endelig til at udskrive det!
<?php
while ( ! $rs->EOF ) {
if ( is_null( $rs->Fields[ "fornavn" ]->Value ) ) {
echo "NULL";
}
else {
echo "<tr><td>" . $rs->Fields[ "fornavn" ]->Value . "</td>";
echo "<td>" . $rs->Fields[ "efternavn" ]->Value . "</td>";
echo "<td>" . $rs->Fields[ "adresse" ]->Value . "</td>";
echo "<td>" . $rs->Fields[ "postnr" ]->Value . "</td>";
echo "<td>" . $rs->Fields[ "telefon"]->Value . "</td></tr>";
}
$rs->movenext();
}
?>
Det vil udskrive alle data i vores database
I del 2 vil vi udskrive enkelte elementer i databasen
Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.
Del også gerne artiklen med dine Facebook venner:
Kommentarer (15)
Kan man ik bruger XP ?
Jo, jo
Men internetudbydere kører sjældent med Windows XP (aldrig) - de kører med NT/2000 og 2003
P.S. Det duer også med Apache, andre servere... dvs. det kræves ikke at man bruger IIS
Nice Artikel!
Den er ihvertfald god at ha' i baghovedet!
Jeg syntes det er en udmærket artikkel hvis jeg kunne finde ud af det, når jeg kommer til at jeg vil have det ud af databasen får jeg fejlen "Fatal error: Cannot instantiate non-existent class: com in /web/www/frac/users/slojd/Test/default.php on line 2" Nogle der kan hjælpe?
Din ISP bruger et unix-baseret system. COM er indbygget i windows.
jeg hat samme problem hvad skal jeg gøre
hvornår kommer del to
Nu har vi så hvordan vi henter fra en MS Access db.. Men hvordan tilføjer man i en?..
Fed artikel, lige hvad jeg skulle bruge, men, hvorfor kommer min server med en fejl: PHP har lavet en ulovlig handling? hvad kan jeg gøre ved det?
fandt ud af det
man skal bare indsætte
$db_connection->close();
tilsidst i php scriptet
Hvor er artikel 2?
Kan du sætte et link på den ?
Det er virkelig en super artikel og lige hvad jeg manglede, Perfekt for os der ikke kan finde ud af MySQL
der er dog lige opstået et probem, på min localhost virker det fint, men når jeg så smider det ud på min hjemmeside bliver siden helt blank. hvad skal jeg gøre?
Du skal være
logget ind for at skrive en kommentar.