Pomoć prijatelja - PHP i ODBC
Posted: 18 April 2011 06:14 PM
Sr. Member
Avatar
RankRankRankRank
Total Posts:  7582
Joined  2005-04-28

U čemu grešim:

[code:1]
      $DSN = ‘PHP2MYSQL’;

 Signature 

ACSP 10.10 - ACSP 10.9 - ACA 10.8 Mac Management - ACSP 10.8 -  ACSP 10.7 - ACSA 10.6

Profile
 
Posted: 10 June 2011 10:29 PM   [ # 1 ]
Newbie
Rank
Total Posts:  16
Joined  2011-06-10

Pitanja/konjmentari

1. zasto ODBC kad PHP ima ugradjeni nativni konektor za MYSQL?
2. jel reseno ovo? il’ da probamo da resimo?
3. malo mi je cudan pristup kupljenja podataka iz baze ja bi ocekivao ODBC array pristup (dobije se struktura Key->value)
4. bolje je sa: echo var_dump($size);

Profile
 
Posted: 11 June 2011 12:59 AM   [ # 2 ]
Sr. Member
Avatar
RankRankRankRank
Total Posts:  7582
Joined  2005-04-28

ljgww wrote:

1. zasto ODBC kad PHP ima ugradjeni nativni konektor za MYSQL?

Zato što nije MySQL jedina baza koja se može koristiti. Ovde je data samo kao primer jer se sa njom moglo dokazati da se mogu povući tačno ti podaci iz iste baze.

2. jel reseno ovo? il’ da probamo da resimo?

Milsim da nije, reč je o nečemu što sam rešavao na mom svakodenvnom poslu. Elem, jedan Francuz se ODBC-om kačo iz PHP-a na staru verziju 4D-a. Sada na Windowsu sa instaliranim binariesima od PHP-a i Apachea ne može. Sve što sam probao se završi na tome da ne mogu najjednostavniji podataka ODBC-om da dobijem u PHP-u, otud ovo moje početničko pitanje. Recimo, odbc_connect u prethodnom primeru uvek prođe, tj. konektuje se, ali nikako nisam uspeo da dobijem rezultat iz baze.

Zato sam i pitao ovde.

 Signature 

ACSP 10.10 - ACSP 10.9 - ACA 10.8 Mac Management - ACSP 10.8 -  ACSP 10.7 - ACSA 10.6

Profile
 
Posted: 11 June 2011 01:25 AM   [ # 3 ]
Newbie
Rank
Total Posts:  16
Joined  2011-06-10

ODBC je native na windowsima, na macu bas i nije, i koliko sam istrazivao za neke zadatke (koje je trebalo napraviti za win ali sam probao da ih simuliram na mac) mac bas i nema ODBC drajvere na raspolaganju, cak se neki i kupuju…. na primer za access.

drugo MySql nije jedina baza koja radi sa PHP i koja ima native interfejs kroz PDO. Evo reference podrzanih baza http://www.php.net/manual/en/pdo.drivers.php

Meni malo vise toga ovde nije jasno. Da li ovo treba da radi na Win ili na Mac?

jos je nejasnije koja je verzija PHP-a?

ajde objasni polako…..

a u medjuvremenu evo ti primer koji radi na windowsima sa odbc prema accessu…. trebalo bi da radi unverzalno prema svakoj bazi koja ima ODBC driver, na Macu koliko znam broj drivera za ODBC je vrlo mali pa je bolje koristiti nativne konekcije kroz PDO ako je moguce. Na linuxu (sto se verovatno malo razlikuje od Mac-a) gotovo da je najpreporucljivije koristi nativne konektore.

[code:1]
<?php
// MS access ODBC / Windows (up to vista, not working on win7 because of ODBC 32/64bit confusion)

// create connection to the database over ODBC
$conn = odbc_connect(‘ImenikDB’, ‘’, ‘’¬´¬?);
// specify/construct SQL query string
$sql = ‘select * from Izvestaj order by ID’;
// connect to the database with SQL statement and get the result
$result = odbc_exec($conn, $sql);
// fetch the data from the database
while($row=odbc_fetch_array($result)) {

Profile
 
Posted: 11 June 2011 06:53 PM   [ # 4 ]
Sr. Member
Avatar
RankRankRankRank
Total Posts:  7582
Joined  2005-04-28

Treba samo da da odgovor da li ODBC iz PHP-a uopšte radi u određenoj situaciji.

Naime, radim za 4D technical support i javio se neki Francuz sa pitanjem da li ovo može radi, pa je meni upalo u ruke da to proverim, iako ne znam PHP. Pri tome koristi binaries instalacije za Windows PHP-a 5.2.3 i Apache 2.2 što sam i skinuo sa:

http://www.php.net/downloads.php#v5
http://www.apache.org/dist/httpd/binaries/win32/

Instalirao, proverio da li radi PHP i Apache, rade bez problema.

Napravim DSN za 4D, povežem se na moju test bazu iz drugog 4D-a, bez problema. Povežem se iz Excela sa onim Officeovim alatima za ODBC, bez problema. Probam PHP kod, prođe mi konekcija, ali nazad ništa ne dolazi. Počnjem da sumnjam, pa instaliram MySQL i napravim dummy tabelu i popunim je. Iz 4D-a ODBC-om se nakačm bez problema. Opet probam isti PHP kod, samo preusmerim DSN na onaj za MySQL ODBC Connector, ista stvar kao kod kačenja na 4D-a.

E, tu sam počeo da sumnjam da ovaj primer koda za PHP baš nisam najbolje shvatio. Posle sam probao sve i svašta, ja mislim da PHP za Windows ima bag kod ODBC-a ili ja ne radim nešto baš najbolje.

Tako da nije pitanje da se ja nakačm na bazu, ne bih nikada koristio ODBC kod PHP-a i MySQL-a da se time bavim, ali sam morao kao proveru da problem nije u 4D-u i njegovom drajveru za ODBC.

Nadam se da je sada malo jasnije, a javljam kada probam ovaj tvoj kod, mada sa nešto tako kasnije i probao.

Post edited by: madamov, at: 2011/06/11 18:55

 Signature 

ACSP 10.10 - ACSP 10.9 - ACA 10.8 Mac Management - ACSP 10.8 -  ACSP 10.7 - ACSA 10.6

Profile
 
Posted: 12 June 2011 01:19 AM   [ # 5 ]
Newbie
Rank
Total Posts:  16
Joined  2011-06-10

koliko vidim iz php dokuentacije podrska za 4d je jos uvek eksperimentalna moguce je da je bagovita. drugo odbc vrlo lako moze takodje da bude bagovit, u mom primeru pise da ne radi sa win 7, konfuzija sa odbc, probano - ne radi - zamisli podignes se na novi OS i aplikacija ti se raspadne….. tako da me nista ne cudi 😉 uostalom zato samo odavno na Mac-u i linuxima a ne na windowsima iako sam dosta programirao na windowsima takodje - tako udaris u neki zid, nigde dokumentacije, niko osim tebe ili nema problem ili je zaobisao problem a nigde nije objavio….. bagova ima svuda, mozda promenis nesto sitno (drugu funkciju, drugaciji pristup pa proradi, ko zna sta je radio onaj programer koji je pisao drajver 😉

Profile
 
Posted: 12 June 2011 01:24 AM   [ # 6 ]
Newbie
Rank
Total Posts:  16
Joined  2011-06-10

ako radis na mac-u imas xampp - odlican!!! sa sve php, perlom, mysql-om i webadminom za mysql - taman da testiras sta hoces za server, lako se instalira, lepo radi, ne boli glava… ima verzija i za windows, isto tako odlicno radi ali ja na windowsima koristim nesto drugo mada bi mogao i ovo….

http://www.apachefriends.org/en/xampp-macosx.html

topla preporuka.

Profile
 
Posted: 12 June 2011 11:58 AM   [ # 7 ]
Sr. Member
Avatar
RankRankRankRank
Total Posts:  7582
Joined  2005-04-28

Nisi shvatio, ne radim ja uopšte niti u PHPu niti u Windowsu, ali klijenti 4D-a rade, a ja sam deo tima koji pruža tehnićku podršku, pa je slučaj ovog klijenta upao meni.

Njemu ne mogu da kažem da koristi XAMP, ne mogu da mu kažem da menja funkcije, njegovo pitanje je bilo zašto mu to ne radi i mi nismo mogli da mu damo precizan odgovor.

Inače, probao sam i na Windows 7 i na XP-u, isto se ponašale obe instalacije.

 Signature 

ACSP 10.10 - ACSP 10.9 - ACA 10.8 Mac Management - ACSP 10.8 -  ACSP 10.7 - ACSA 10.6

Profile
 
Posted: 12 June 2011 01:45 PM   [ # 8 ]
Newbie
Rank
Total Posts:  16
Joined  2011-06-10

Tek sam sad shvatio sta je problem. Nazalost, mnogo toga je nepoznato ili nedokumentovano. komentar kaze: This function (odbc_fetch_object) requires one of the following to exist: Windows, DB2, or UNIXODBC.

Vrlo je moguce da je odbc_fetch_object dobio jos primena sa drugim bazama ali da ne radi u nekim pojedinacnim slucajevima.

Da li ovo pomaze?

Profile
 
Posted: 12 June 2011 01:45 PM   [ # 9 ]
Newbie
Rank
Total Posts:  16
Joined  2011-06-10

Tek sam sad shvatio sta je problem. Nazalost, mnogo toga je nepoznato ili nedokumentovano. komentar kaze: This function (odbc_fetch_object) requires one of the following to exist: Windows, DB2, or UNIXODBC. komentar iz 2005.

Vrlo je moguce, i izgleda (a i verovatno) da je odbc_fetch_object u medjuvremenu dobio jos primena na razne baze. Funkcija se provlaci od verzije 4 PHP, a sad smo negde na 5.3…, ali bice da ne radi u nekim pojedinacnim slucajevima - time i objasnjenje da ne vraca nista jer ni ne postoji (ali se PHP ne buni ili se buni ali sa nekim warningom).

moglo bi da pomogne negde na pocetku…

error_reporting(E_ALL | E_STRICT);

da se vidi kakvi su warning/notices. PHP ce tipicno da ignorise greske koje nisu kriticne.

Da li ovo pomaze?

Post edited by: ljgww, at: 2011/06/12 13:52

Profile
 
Posted: 12 June 2011 01:54 PM   [ # 10 ]
Sr. Member
Avatar
RankRankRankRank
Total Posts:  7582
Joined  2005-04-28

Hvala, probaću ako čovek opet potegne pitanje jer se nije javio posle poslednjeg maila upućenog mu. Možda su se nekako snašli u međuvremenu iliti po srpski pronašli ‘workaround’. B)

 Signature 

ACSP 10.10 - ACSP 10.9 - ACA 10.8 Mac Management - ACSP 10.8 -  ACSP 10.7 - ACSA 10.6

Profile
 
Posted: 12 June 2011 01:58 PM   [ # 11 ]
Newbie
Rank
Total Posts:  16
Joined  2011-06-10

nema na cemu, programiranje je uvek kombinovanje, dok se ne nadje ono sto radi. uvek je workaround 😊 i kad proradi i dok radi ne menja se 😊

Profile