Abbiamo installato PHP nel nostro AS400, tutto funziona perfettamente; ora installiamo un server con un ambiente completo di sviluppo in modo che possiamo fare esperimenti senza sporcare il nostro ambiente di produzione, e ci accorgiamo che abbiamo l'esigenza di collegarci al nostro DB2 400 dal nostro webserver di sviluppo.
Ecco una breve guida per ottenere una connessione funzionante.
Leggendo diversi forum, consultando la Zend, la IBM etc. sembrava chiaro che fosse difficile ottenere questo risulato, in tutti i casi la soluzione c'è ed è molto semplice e veloce.
• Per gli sviluppatori è necessario scaricare il software: "DB2 Connect Developer Edition" dal sito ufficiale di IBM; per i siti in produzione invece è necessario acquistare "DB2 Connect PE (personal edition)" o versioni superiori.
• Installare il software "DB2 Connect" ed annotare l'istanza che verrà creata (es.: DB2_01)
• Una volta scaricato il software, avviate il "Configuration Assistant" (db2ca) e configurate la vostra connessione con l'AS400. Durante la configurazione mi raccomando di creare un alias ODBC.
• Configuriamo ora il file php.ini aggiungendo le seguenti righe nella sezione ibm_db2 oppure alla fine del file
ibm_db2.instance_name=DB2_01 ibm_db2.instance_home="C:\Programmi\IBM\SQLLIB"
• Restart del webserver
A questo punto siamo pronti a scrivere codice PHP utilizzando il comando db2_connect. Il vantaggio di usare questa tecnica sta nel fatto che si può sviluppare velocemente su una macchina esterna, leggendo i dati live dall'iSeries e quindi portare poi il codice sul sistema principale senza cambiare una virgola.
Connessione catalogata all'as400:
$database = 'MIODB';
$user = 'MIOUSERNAME';
$password = 'MIAPASSWORD';
$conn = db2_connect($database, $user, $password);
Connessione non catalogata:
$database = 'MIODB';
$user = 'MIOUSERNAME';
$password = 'MIAPASSWORD';
$port = '446';
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;
HOSTNAME=$hostname; PORT=$port; PROTOCOL=TCPIP;
UID=$user; PWD=$password;";
$conn = db2_connect($conn_string, 'MIOUSERNAME', 'MIAPASSWORD');
Connessione ad un DB2 di tipo diverso (es.: DB2 Express-C)
$database = 'MYLOCALDB';
$user = 'MIOUSERNAME';
$password = 'MIAPASSWORD';
$hostname = 'localhost';
$port = '50000';
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;
HOSTNAME=$hostname;PORT=$port;PROTOCOL=TCPIP;
UID=$user;PWD=$password;";
$conn = db2_connect($conn_string, 'MIOUSERNAME', 'MIAPASSWORD');
Come potete notare, il codice per la connessione cambia di poco ma il resto del vostro lavoro potrà essere scritto una sola volta, sfruttato in qualsiasi ambiente e collegato a molteplici fonti di dati.
Log in o crea un account utente per inviare un commento.