Home / Blog / iSeries DB2 live data from external PHP server

iSeries DB2 live data from external PHP server


Scenario1: DB2 as400 + webserver esterno

Scenario2: DB2 as400 + ambiente di sviluppo esterno

Entrambi i casi hanno i dati di test e di produzione caricati sull'iSeries; bene 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 alia 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 vedete il codice per la connessione cambia di poco ma ilr esto del vostro lavoro potrà essere sfruttato in qualsiasi ambiente e collegarloa molteplici fonti di dati.

Commenti

Log in o crea un account utente per inviare un commento.

Ciao a tutti, ho deciso di aprire questo blog dopo aver fatto delle prove con Nokia Lifeblog e le tecnologie correlate.
Spero di tenere traccia dei miei appunti ed idee riguardo la mia vita digitale e tutto ciò che mi colpisce particolarmente nella vita (non solo lavorativa) postando da casa, dal lavoro, dal cellulare ... vedremo!

A presto !

Lun Mar Mer Gio Ven Sab Dom
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31