[PHP] Connessione a ODBC

Stato
Chiusa ad ulteriori risposte.

invisible93

Utente Attivo
12 Apr 2013
59
0
6
Firenze
Ciao a tutti,

ho la necessità di connettermi a un db di AS400.

In test su macchina windows con xampp mi collego senza problemi utilizzando il seguente codice:

PHP:
 $server = "Driver={Client Access ODBC Driver (32-bit)};System=mioAS400;
Uid=utente;Pwd=password;"; #the name of the iSeries
            $user = "utente"; #a valid username that will connect to the DB
            $pass = "password"; #a password for the username

            $conn = odbc_connect($server, $user, $pass); #you may have to remove quotes
            if ($conn) {
            echo "Connection OK.";
            } else {
                echo "Connection failed.";
            }

portando il tutto su una macchina ubuntu server 16.04, come output ricevo
"Connection failed"

Sbaglio il modo di connessione? come posso connettermi da linux?

Grazie in anticipo
 
per prima cosa toglierei if-else in modo da vedere l'errore,
non conoscendo il vero errore, diverse possibilità,

controlla che sul server sia installato il driver odbc, nel caso non lo fosse leggi qui,
https://www.microsoft.com/en-us/download/details.aspx?id=20098

se il driver è installato, è probabile che non sia raggiungibile il nome "mioAS400" forse vuole nome del server/istanza

oppure vedi che, nelle proprietà del database, sia autorizzato l'accesso remoto (se è presente questa autorizzazione)
 
per prima cosa toglierei if-else in modo da vedere l'errore,
non conoscendo il vero errore, diverse possibilità,

controlla che sul server sia installato il driver odbc, nel caso non lo fosse leggi qui,
https://www.microsoft.com/en-us/download/details.aspx?id=20098

se il driver è installato, è probabile che non sia raggiungibile il nome "mioAS400" forse vuole nome del server/istanza

oppure vedi che, nelle proprietà del database, sia autorizzato l'accesso remoto (se è presente questa autorizzazione)

Ciao, intanto grazie per la risposta.
Il server su cui ho il problema è un Ubuntu 16.04.
Da windows funziona senza problemi, il nome "mioAS400" è corretto, infatti da windows riesco a fare query senza problemi.

Mi interessa trovare un modo per connettermi da linux in php, non so se esiste qualche libreria o altro da integrare.
 
Il drive odbc è installato.
Togliendo l'if-else va al controllo successivo va al controllo successivo, ovvero al controllo della query, e mi dice che la query errata senza però specificare l'errore preciso.
Gli accessi remoti sono correttamente configurati verso l'AS.


Ho letto il tuo post ma forse non ho capito, perdonami!
Che altro devo fare?
 
1) Tolto l'if - else, il codice viene eseguito e arriva al secondo controllo
PHP:
 $query="SELECT * from as_log.wq21 where pippo=puppa";

                    $result = odbc_exec($conn, $query);
                    if (!$result) {
                        exit("Error in SQL");
                    }
                    .....

qua semplicemnte mi restituisce "Error in SQL" senza ulteriori info, se tolgo anche questo controllo restituisce pagina bianca.
Ho abilito anche gli error log sul php.ini

2. Pensavo fosse solo lato microsoft, ho seguito le istruzione per Linux e ho installato i seguenti pacchetti:
Codice:
apt-get -y install php7.0 mcrypt php7.0-mcrypt php-mbstring php-pear php7.0-dev php7.0-xml

3. mioAS400 è il nome corretto, con questo nome lo raggiungo tramite dbeaver, datagrip ecc ecc

4.L'accesso remoto è consentito, perché sennò il codice mi avrebbe dato errore anche sulla mia macchina con windows 7 e xampp, nella quale invece funziona correttamente.
 
nel mio php.ini leggo
; Windows Extensions
; Note that ODBC support is built in, so no dll is needed for it.

hai controllato con phpinfo se è installato il driver odbc per ubuntu ?
altrimenti verifica nel sito Microsoft come attivarlo
 
Dovrebbe essere attivo, questo è quello che mi restituisce phpinfo();

http://imgur.com/a/omZC1
omZC1
 
Nell'error log di apache2 vedo:

PHP Warning: odbc_connect(): SQL error: [unixODBC][Driver Manager]Can't open lib 'Client Access ODBC Driver (32-bit)' : file not found, SQL state 01000 in SQLConnect in /var/www/html/progetto/index.php on line 107, referer: http://progetto/index.php
 
Salve sono neofita di php ho eseguito la stessa connessione su ZendServer è ok ma non va
su server XAMMP (credo che bisogna installare il driver odbc su Xampp oppure forse manca qualcosa in configurazione) ma non so come fare
potreste aiutarmi?
Grazie
 
@Luigi Sgroi
Non riesumare discussini vecchie e sopolte in particolare modo se devi porre una tuo domanda!!
Per i tuoi quesiti apri una tua discussione nella sezione più adattta
 
Stato
Chiusa ad ulteriori risposte.

Discussioni simili