Ho una applicazione php che prima girava sotto Windows al cui interno c'è una stringa per la connessione ad una AS400 tramite la odbc di client access.
La stringa in questione è la seguente :

$server="Driver={Client Access ODBC Driver (32-bit)};System=192.168.170.102; Uid=user;Pwd=password;"

Ora che vorrei utilizzare un server virtuale sotto Ubuntu 12.04, questa stringa non va nonostante abbia installato iseriess access for linux.La cosa strana è che se da console eseguo il comando isql con il nome del data source che ho aggiunto nel file ODBC.ini, questo funziona e mi fa accedere tranquillamente ai dati. Se tento di utilizzare la odbc da php la funzione odbc_connect mi restituisce il valore false e quindi non riesco a collegarmi all'as400.
Su qualche blog ho letto che bisogna attivare le estensioni odbc e pdo del php. Ma dove si attivano queste estensioni? Forse nel file php.ini? Ma qual è la specifica esatta?

Qualcuno mi può dare un mano per cortesia , mi sono impantanato su questa problematica e non riesco ad andare avanti.

Grazie

Ho seguito i tuoi consigli e ora non mi da più l'errore sulla odbc_connect , ma poi quando tento di fare un sql su AS400 mi da un errore sql di cui però non riesco a capire la causa. C'è qualche log che posso interrogare?
l'istruzuine php che lancio è la seguente

$result=odbc_exec($conn,"SELECT * FROM QGPL.SEGNO");

e poi con la seguente istruzione testo l'esito dell'evento

if (!$result)
  {exit("vedi Errore in SQL");}

Quest'ultima mi emette sempre il messaggio "Vedi Errore in Sql" quindi la odbc_exec va in errore.
I file odbc.ini e odbcinst.ini sono così fatti:

odbc.ini

[primary]
Description = primary
Driver = iSeries Access ODBC Driver
System                  = IP_ADDRESS
UserID                  = USERNAME
Password                = PASSWORD
Naming                  = 1
DefaultLibraries        = QGPL
Database                = XXXXXXXXXX
ConnectionType          = 0
CommitMode              = 2
ExtendedDynamic         = 0
DefaultPkgLibrary       = QGPL,ATI_DATWEB
DefaultPackage          = A/DEFAULT(IBM),2,0,1,0,512
AllowDataCompression    = 1
LibraryView             = 0
AllowUnsupportedChar    = 0
ForceTranslation        = 0
Trace                   = 0

odbcinst.ini

[iSeries Access ODBC Driver]
Description     = iSeries Access for Linux ODBC Driver
Driver      = /opt/ibm/iSeriesAccess/lib/libcwbodbc.so
Setup       = /opt/ibm/iSeriesAccess/lib/libcwbodbcs.so
NOTE1       = If using unixODBC 2.2.11 or later and you want the 32 and 64-bit ODBC drivers to share DSN's,
NOTE2       = the following Driver64/Setup64 keywords will provide that support.
Driver64        = /opt/ibm/iSeriesAccess/lib64/libcwbodbc.so
Setup64     = /opt/ibm/iSeriesAccess/lib64/libcwbodbcs.so
Threading       = 2
DontDLClose     = 1
UsageCount      = 2

chiesto 04 Apr '14, 16:02

criscuolo's gravatar image

criscuolo
20113

modificato 16 Apr '14, 15:25

dadexix86's gravatar image

dadexix86 ♦♦
17.0k916161

Potresti indicare il tipo di errore? Dovresti trovarlo nei log di apache. Inoltre verifica con phpinfo se l'estensione php-odbc è presente e se non lo è prova sudo apt-get install php5-odbc. Trovi un po' di info a questo link http://stackoverflow.com/questions/19184302/connecting-to-an-ibm-as-400-db2-database

(13 Apr '14, 13:59) letizia letizia's gravatar image

prova le direttive odbc_error($conn) e odbc_errormsg($conn)trovi la descrizione nel manuale: http://www.php.net/manual/en/ref.uodbc.php

coll. permanente

ha risposto 17 Apr '14, 19:08

letizia's gravatar image

letizia
7231519

Basta ci rinuncio continuerò a usare easy php su windows 7 home edition

coll. permanente

ha risposto 22 Apr '14, 17:33

criscuolo's gravatar image

criscuolo
20113

La tua risposta
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×20
×5

domanda posta: 04 Apr '14, 16:02

domanda visualizzata: 3,677 volte

ultimo aggiornamento: 22 Apr '14, 17:33

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.