Avatar billede claushelth Nybegynder
14. maj 2003 - 17:10 Der er 23 kommentarer og
2 løsninger

Er PEAR en slags ODBC

kan PEAR benyttes til kontakt mellem php og en microsoft database i stedet for ODBC?

Claus
Avatar billede a_eriksen Nybegynder
14. maj 2003 - 17:12 #1
PEAR har ikke noget specielt med databaser at gøre. Det er bare en smart måde at hente komponenter til sin php installation.

Hvilken platform kører du på og hvad vil du?
Avatar billede fangel Nybegynder
14. maj 2003 - 17:14 #2
Avatar billede claushelth Nybegynder
14. maj 2003 - 17:16 #3
Det er til en opgave!!

Jeg har ikke selv prøvet PEAR, men har lavet direkte tilknytning til min MySql. Jeg kører Apache på en win2000, med PHP4.

Jeg har forstået følgende om PEAR:
PEAR er databaseuafhængig, og derfor er denne tilgang smart, da man kan skift DB uden at ændre særlig meget i PHP koden. Hvis man har lagt sine DB-kald i en klasse, så skal der kun ændres i meget få linjer.

Det lyder i hvert fald lidt som en ODBC...bortset fra at ODBC jo kun virker til MS!! :-)
Avatar billede a_eriksen Nybegynder
14. maj 2003 - 17:17 #4
dea_pg: Var det ikke essensen af det jeg skrev?
Avatar billede fangel Nybegynder
14. maj 2003 - 17:17 #5
du kan jo bare lave dine egen klasser... ;) du kan jo bruge mange forskellige databaser i native PHP ;)
Avatar billede a_eriksen Nybegynder
14. maj 2003 - 17:18 #6
Det er ikke utænkeligt at det i PEAR pakkesamlingen er et modul til database access, men derudover har det stadig intet med PEAR at gøre.
Avatar billede claushelth Nybegynder
14. maj 2003 - 17:18 #7
men har jeg forstået PEAR korrekt, og hvis det ikke er det samme som ODBC, hvad er så forskellen?
Avatar billede fangel Nybegynder
14. maj 2003 - 17:20 #8
ODBC er KUN til databaser, PEAR er bare klasser i sin helhed ;)

a_eriksen => havde ikke set dit svar, ledte efter et mere konkret svar inde på siden ;)

Morten
Avatar billede a_eriksen Nybegynder
14. maj 2003 - 17:20 #9
Som sagt er PEAR bare et interface til at hente php kode.

Men du kan hente et database interface via PEAR:
http://pear.php.net/package-info.php?pacid=46
Avatar billede claushelth Nybegynder
14. maj 2003 - 17:24 #10
okay, tror jeg har den...
...det vil sige at hvis man vilhave kontakt til en MS DB med php, og man bruger PEAR som interface, så skal man stadig have en ODBC?
Avatar billede a_eriksen Nybegynder
14. maj 2003 - 17:30 #11
Du bruger IKKE PEAR som interface, du bruger PEAR til at hente code med.
Resten kan jeg ikke hjælpe dig med da jeg ikke har prøvet at blande MS og php.
Avatar billede tipsen Nybegynder
14. maj 2003 - 17:32 #12
PEAR er en samling klasser i PHP af meget høj kvalitet. De benyttes til forskellige abstraktioner i forbindelse med databaseopkoblinger, formularbehandling, tabelgenerering og meget mere.

Blandt alle disse klasser findes eksempelvis PEAR:DB og PEAR:MDB som er database abstraktionslag som kan benyttes til opkobling mod mange forskellige databaser - men ikke via ODBC!

Der findes også DB_ado, som skulle kunne bruges til opkobling mod MS-produkter - se http://pear.php.net/package-info.php?pacid=68 for mere info.

Jeg bruger en del af klasserne fra PEAR og er 99,9% tilfreds med det jeg har brugt indtil videre - der er ind i mellem nogle mindre bugs i de stabile versioner, men som regel bliver de også rettet meget hurtigt!
Avatar billede tipsen Nybegynder
14. maj 2003 - 17:35 #13
Jeg vil nok foreslå dig at kigge nærmere på følgende, hvis du har behov for en ODBC opkobling til en MS db.

http://php.weblogs.com/odbc
http://www.zend.com/zend/tut/odbc.php
Avatar billede claushelth Nybegynder
14. maj 2003 - 17:39 #14
okay...grunden til at jeg er/var i tvivl er fordi man kan slå [PEAR] op i Rasmus Lerdorf's egne bog (Programming PHP), og her stå det sammen med DB afsnittet. Jeg forstå godt hvad det er du skriver med at man bruger den til at hente kode med, så forstår jeg bare ikke budskabet i hans bog!!
Avatar billede tipsen Nybegynder
14. maj 2003 - 17:47 #15
Når man i alm. tale refererer til PEAR tænkes der på klasse-samlingen - det a-eriksen henviser til er at pear.php.net giver et webbaseret interface til at hente disse klasser - og i indledningen står der da også, at PEAR overordnet set må betragtes som et miks af flere ting - blandt andet de to ovennævnte!

Når Rasmus refererer til PEAR i et afsnit om databaser, hænger det nok sammen med at DB-klassen ubetinget er den mest populære og anvendte, hvis man lige ser bort fra basis-klassen! Desuden kan de fleste se det smarte i at lave database-operationerne objektorienterede - så det er også pædagogisk en god klasse at hive frem!
Avatar billede claushelth Nybegynder
14. maj 2003 - 17:49 #16
takker for hjælpen...jeg ved hvad jeg skal igang med nu :-)
Avatar billede claushelth Nybegynder
14. maj 2003 - 17:51 #17
fandt faktisk svar på det på en af tipsens link:

på http://www.zend.com/zend/tut/odbc.php :
Do we need to use ODBC? PHP has several database connection libraries, such as for MySQL and Oracle, but the language cannot possibly support every database vendor in the world. As such, ODBC is a standard that will enable PHP to connect to any database server packaged with the required ODBC drivers.
Avatar billede tipsen Nybegynder
14. maj 2003 - 18:09 #18
Håber også du fik en bedre forståelse af hvad PEAR egentlig er for noget - for mit vedkommende er det en af de bedste web-ressourcer i forb. med PHP!
Avatar billede claushelth Nybegynder
14. maj 2003 - 18:14 #19
tipsen-> jeg har lige hentet den klaae fra PEAR, og kan se at den har nogle mapper vedr. ODBC, ved du noget om det? Kan jeg skrive i min opg. at ODBC automatisk bliver brugt (eller der er mulighed for at bruge ODBC) med disse klasser?
Avatar billede claushelth Nybegynder
14. maj 2003 - 18:22 #20
jeg ved ikke om der er nogle der læser dette, men her er min konklusion på spørgsmålet:

Når man bruger PHP til databaseadgang kan det ske på 2 måder. Den ene er at have direkte adgang til den database man vil have kontakt til. Den anden er at kører sin databasekontakt igennem PEAR udvidelsen som er nogle standard hjælpeklasser der er blevet udviklet. Når man gør sin forbindelse til DB objektorienteret, er det meget nemmere at skifte database senere, fordi der kun skal ændres kode i denne klasse, og ikke på nogle af de sider der benytter klassen. En ulempe der er ved PEAR er at kontakten bliver lidt langsommere, men hvis man vil have fleksibilitet, er det at fortrække at benytte PEAR, da en given virksomhed nemmere vil kunne komme i kontakt med andres database ved et eventuelt samarbejde. PEAR tilbyder også ODBC driveren så det er endnu nemmere at skifte DB.
Avatar billede tipsen Nybegynder
14. maj 2003 - 18:45 #21
Næsten rigtigt;

-man kører ikke databasekontakten gennem "PEAR udvidelsen"

Enten bruger man en af de indbyggede database-specifikke funktioner i php - altså mysql, msql, PostgreSQL eller en af den slags!

Kode for MySQL:

$db_host = 'dbserver';
$db_user = 'username';
$db_pw  = 'password';
$db_base = 'database';
$cnx = mysql_connect($db_host, $db_user, $db_pw);
mysql_select_db($db_base, $cnx);
$res = mysql_query("SELECT * FROM tabel");

-altså funktioner der er specifikke for MySQL db'en og alle php-script skal rettes, hvis man ønsker at skifte fra eksempelvis MySQL til PostGreSQL!

Alternativt bruger man en af klasserne fra PEAR-biblioteket - eksempelvis DB-klassen, hvor en opkobling eksempelvis ser sådan ud:

require_once('DB.php');
$dbinfo = array('phptype' => 'mysql', 'hostspec' => 'dbserver', 'database' => 'dbnavn', 'username' => 'username', 'password' => 'password');
$db = DB::connect($dbinfo);
$gbmsgs = $db->Query('SELECT * FROM tabel');

-hvis man ønsker at migrere til PostGreSQL ændrer man bare 'phptype' fra 'mysql' til 'postgresql' og så er den klaret!

Man har altså et væsentligt mere fleksibelt system, men giver afkast på en smule hastighed og måske også nogle af db'ernes individuelle muligheder. Man kan selvfølgelig ikke bare skifte fra MySQL til Postgresql, hvis man i sine php-script har benyttet muligheder der kun gælder for MySQL og ikke for PostGreSQL eller omvendt! Hvis man stadig nemt vil kunne skifte dbms, skal man altså¨begrænse sig til features der er fælles for de dbms'er man kunne ønske at bruge.
Avatar billede claushelth Nybegynder
14. maj 2003 - 18:52 #22
OKAY...nu forstå jeg det faktisk..hehe.

Så hvis man også benytter ODBC så behøver man ikke at tænke på de sidste problemer du nævnte. Feks. behøver man ikke tænke på hvilken feauteres man benytter hvis man anvender ODBC, da denne konvertere forspørgslerne til den rigtige applikation.

Nu håber jeg ikke at for fik rodet helt rundt i det...
tipsen->Nu ved jeg ikke om du er en af dem der er interesseret i point...ellers må du lige sige til :-)
Avatar billede tipsen Nybegynder
14. maj 2003 - 18:56 #23
Claus: Det med ODBC er jeg ikke så stiv i, men det lyder vist ikke helt tosset. Point kan være ligegyldigt - de kan ikke bruges til noget alligevel - lige bortset fra et Eksperten Pro medlemsskab, så man slipper for reklamer - og hvis jeg får det, er det fordi jeg bruger for meget tid her alligevel :-)
Avatar billede claushelth Nybegynder
14. maj 2003 - 18:57 #24
hehe..okay takker for din hjælp. Det er til min Synopsis på 4. semester datamatiker. Er ved at ligge en sidste hånd på den.
Avatar billede tipsen Nybegynder
14. maj 2003 - 19:47 #25
God arbejdslyst.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester