In un recente lavoro mi è capitato di dover accedere ad un database Microsoft SQL Server da un software scritto in PHP. Il software girava sulla stessa macchina di SQLServer, quindi in ambiente Windows.
Vi sono diverse librerie disponibili per effettuare questa operazione; io ho scelto quelle proprietarie di Microsoft, che troverete qui:
http://sqlsrvphp.codeplex.com/
INSTALLAZIONE DRIVER PHP-SQLSERVER
Vediamo intanto come installare i componenti necessari.
Installate "Microsoft® SQL Server® 2012 Native Client", prendendolo da questo indirizzo:
http://www.microsoft.com/it-it/download/details.aspx?id=29065
Scaricate l'ultima versione del driver ufficiale per Php che trovare qui:
http://www.microsoft.com/en-us/downlo ad/details.aspx?id=20098
una volta estratti i files copiate php_sqlsrv_54_ts.dll ed php_pdo_sqlsrv_54_ts.dll nella directory "ext" della vostra installazione Php, ed aggiungete le seguenti direttive al file php.ini:
(attenzione: se avete installato la versione "non thread safe" di php, dovrete invece usare le DLL con nome *_nts.dll)
ESEGUIAMO LE NOSTRE QUERY
Adesso che abbiamo installato tutto il necessario siamo pronti;
--- inizio file test.php ---
<?php // questa istruzione non e' indispensabile... // ...ma evito che spuntino un sacco di warning // se faccio query su tabelle con colonne DATE/TIME date_default_timezone_set('Europe/Rome'); // parametri di connessione $serverName = "localhost"; $connectionInfo = array( "Database"=>"ilNomeDelDatabase", "UID"=>"ilMioUtente", "PWD"=>"laMiaPassword" ); // connessione al database $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn === false ) { die( print_r( sqlsrv_errors(), true)); } // esecuzione della query $sql = "SELECT * FROM tnomeTabella"; $stmt = sqlsrv_query( $conn, $sql); if( $stmt === false ) { die( print_r( sqlsrv_errors(), true)); } // stampa dei risultati while($obj = sqlsrv_fetch_object( $stmt)) { echo $obj->nomeColonna."\n"; } // chiudo la connessione al db sqlsrv_close($conn); ?>
--- fine file test.php ---
per eseguire lo script basta eseguire "php test.php" e vedere l'output (ovviamente dovrete cambiare i parametri di connessione ed il nome della tabella e della colonna da visualizzare se volete che funzioni :-D )
Troverete la descrizione delle API sul sito ufficiale del progetto, oppure andando all'URL: