..
Introductie
De interactie tussen PHP en de database vindt haar hoogste uitdrukking met MySQL op zowel Linux als Windows-systemen. PHP op Windows is in staat om te werken met andere databases dan MySQL, het benutten van de eigenschappen en interfaces die door de verschillende DBMS. Is PHP kunnen werken met MS Access en MS SQL Server: In dit artikel zullen we zien hoe PHP werkt samen met Access.
De interface tussen elke programmeertaal, en Web WUI, met DBMS van Microsoft, zoals de Access, ADO (ActiveX Data Objects) al bekend voor programmeurs, ASP.NET en Visual Basic ASP.
Voordat u begint met de uitleg van ADO en het gebruik ervan door middel van PHP en voor de uitvoering van de voorbeelden, voel ik me verplicht om te zeggen dat de PHP in combinatie met een DBMS van Microsoft niet het meest wenselijk en prestaties, maar nog steeds volledig functioneel.
De kennis die nodig is voor volledig begrip van dit artikel zijn:
Structuur van de test-database
Voor de uitvoering van een aantal praktische voorbeeld maken we het bestand bestaat uit de enkele tabel database.mdb Access-gebruikers op hun beurt weer bestaan uit velden id (tegen), naam (tekst) en achternaam (Text).
Plaats de database op uw persoonlijke webserver, Apache of EasyPHP die, bijvoorbeeld in de test
C: \ percorso_fisico \ database.mdbpercorso_fisico waar is het fysieke adres van uw persoonlijke webserver, geïnstalleerd, zoals in dit voorbeeld, de C-partitie.
De database is klaar. Voort te zetten.
Inleiding tot ADO
ADO is een bibliotheek van Microsoft die interactie mogelijk maakt met DBMS van Microsoft zelf of met andere DBMS zoals MySQL voor het gebruik ervan met ASP.
ADO biedt drie basis objecten: Verbinding, Recordset, en Command. Dit artikel maakt gebruik van de eerste twee dienen respectievelijk om de verbinding te beheren en de gegevens te beheren. De derde is een specialist onderwerp, maar niet zo goed zelfs gebruikt door Microsoft programmeurs, sterven, behalve in speciale gelegenheden.
ASP Programmeurs opmerking: Beste collega's, net als ik :-) u gewend bent aan het gebruik van het punt-karakter van de variabele naam, bevat bijvoorbeeld de aansluiting scheiden, de methode of eigenschap worden gebruikt; in PHP, voor de (.) de enige interactie met ADO, wordt het gebruikt als scheidingsteken in de vorm ->
variabele-> methodeonthoud dat!
Bepaal de database connectie
Maak nu een map op onze test webserver, bijvoorbeeld in het bestand en plaats phpaccess connessione.php met de volgende code:
<? PHP
$ Db = "C: \ percorso_fisico \ database.mdb";
$ Sc = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = $ db;"
?>
De variabele $ db bevat het fysieke pad van het bestand en de variabele $ v database.mdb bevat de OLEDB connectie string met de database, zal dit bestand worden opgenomen in alle PHP-bestanden die zal uitvoeren bewerkingen op de database in kwestie.
Het lezen van gegevens
Voor het uitvoeren van het lezen van de gegevens die we maken op de server, in de test map, het bestand leggi.php, onder de opmerkingen code van het bestand:
<html>
<head>
<title> Interactie tussen PHP en MS Access </ title>
</ Head>
<body>
<? PHP
/ / Include het bestand met de connectie string
include ("connessione.php");
/ / Maak twee COM-objecten met de Aansluiting en recordset
$ Cn = new COM ("ADODB.Connection");
$ Rs = new COM ("ADODB.Recordset");
/ / Ik open de verbinding en de recordset
$ Cn-> open ($ sc);
$ R-> Open ("SELECT * FROM gebruikers", $ cn);
/ / Controleer of er geen gegevens over de tafel
if ($ rs-> EOF) print "Geen gegevens gevonden </ p>";
<b> / / Als er een cyclus van het lezen </ b>
anders while ($ rs-> EOF == FALSE)
{
print "<p>";
print "<b> Naam: </ b>".
$ R-> Fields ['naam'] -> waarde;
print "<br>";
print "<b> Achternaam: </ b>".
$ R-> Fields ['naam'] -> waarde;
print "</ p>";
$ R-> MoveNext ();
}
/ / Sluit de recordset
$ R-> Close ();
$ R-> Release ();
$ R = null;
/ / Sluit de verbinding
$ Cn-> Close ();
$ Cn-> Release ();
$ Cn = null;
?>
</ Body>
</ Html>
De werking is eenvoudig: recordset aan het lezen en specifieke vragen in de variabele waarin de verbinding werd geopend pas, de eigenschappen van de Recordset EOF (End Of File) leest alle gegevens op basis van de opgegeven query indien ingesteld op TRUE betekent dat er geen gegevens in de database, dan start de melding, indien ingesteld op FALSE in een lus, leest alle gegevens volgens de gespecificeerde vraag; MoveNext () beëindigt de lus en de positie van de cursor ADO aan het begin van de cyclus, het vermijden van een oneindige lus.
De sluiting van het object zijn de methoden Close () en Release () die dienen respectievelijk te sluiten en te vernietigen een COM-object. Tenslotte kan je de variabele op null om het geheugen van de variabele duidelijk.
Het schrijven van data
Het criterium waarmee je schrijft gegevens naar een Access-database met PHP is gelijk aan het criterium van het lezen van de gegevens in de volgende code, geschreven in het bestand niet gebruik maken van de Recordset scrivi.php, maar voert een SQL INSERT dankzij Uitvoeren om () methode van 'Verbinding object, het commentaar code:
<html>
<head>
<title> Interactie tussen PHP en MS Access </ title>
</ Head>
<body>
<? PHP
/ / Include het bestand met de connectie string
include ("connessione.php");
$ Cn = new COM ("ADODB.Connection");
$ Cn-> open ($ sc);
/ / Definieer de query
$ Sql = "INSERT INTO gebruikers (naam, achternaam) VALUES ('Luca', 'Roger')";
/ / Maak data-entry
$ Cn-> Execute ($ sql);
/ / Start een bevestigingsbericht
print "invoegen <p> met succes afgesloten </ p>";
/ / Sluit de verbinding
$ Cn-> Close ();
$ Cn-> Release ();
$ Cn = null;
?>
</ Body>
</ Html>
| |
Linux (Cursus)
Complete gids voor open-source systeem. Van 49 €. |
| |
MySQL (Cursus)
Beheer van de open source database. Van 39 €. |
| |
PHP (Cursus)
Volledige cursus voor het maken van dynamische websites. Van 49 €. |