PHP – namestitev SQL Server 2005 knjižnice (SQLSRV extension)
Če ste kdaj uporabljali PHP MS SQL knjižnico ali odbc knjižnico za dostop do MS SQL baze veste, da stvari niso popolne ali bolje rečeno tako dodelane kot pri MySQL oz. MySQLi knjižnici. Primer napaka je column truncate, ki nam vrne le del stringa namesto celotnega (tukaj se govori o LONGBLOB tipih, kjer je podatkov v eni vrstici zares veliko), vaš čas pa znajo potratiti včasih čudne napake.
Ker pa je zadnje čase Microsoft veliko bolj pripravljen pomagati PHP skupnosti (nato kažejo tudi zadnje novice o Microsoft Azure ter PHP podpori) so spisali nov PHP5 modul oz. extension. Uradni opis:
The SQL Server 2005 Driver for PHP is a PHP 5 extension that provides data access to SQL Server 2005 and SQL Server 2008. The extension provides a procedural interface for accessing data in all versions (including Express) of SQL Server 2005 and SQL Server 2008. The SQL Server 2005 Driver for PHP API includes support for Windows Authentication, transactions, parameter binding, streaming, metadata access, and error handling.
Poglejmo kako zadevo namestiti na WAMP konfiguraciji (windows, apache, mysql, php). Potrebujete:
- delujočo WAMP konfiguracijo
- SQL Server 2005 Driver for PHP
- Microsoft SQL Server Native Client - x86
- SQL 2005 oz. SQL 2008 strežnik (localhost ali nekje na oddaljenem računalniku)
Namestitev SQLSRV modula:
Potrebno je modificirati php.ini, ki se (ponavadi) nahaja znotraj PHP inštalacije. Odprite z Notepad urejevalnikom, poiščite frazo "; Windows Extensions", nato na koncu dodajte extension=php_sqlsrv_ts.dll. S tem PHP naučimo, da bo za sqlsrv funkcije uporabljal php_sqlsrv_ts modul (posplošeno). S pomočjo phpinfo pa lahko preverite ali se je zadeva uspešno naložila. Iščite po "sqlsrv support enabled" frazi.
Primer uporabe SQL Server 2005 - sqlsrv modula:
-
// Povezava
-
$conn = sqlsrv_connect('MS SQL 2005 server hostname', array( "UID" => "username", "PWD" => "password", "Database" => "ime baze"));
-
-
if($conn == false) {
-
}
-
-
// Branje
-
$sql = "SELECT id FROM Table";
-
$stmt = sqlsrv_query($conn, $sql);
-
while ( ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) !== false) {
-
}
Opise funkcij, primere uporabe itd. pa lahko najdete na MS API spletni strani.
Dodatne informacije:
- Uradna stran za SQLSRV modul
- Več informacij o namestitvi modula
- Source code - tudi Microsoft se včasih odpre
Mogoče kdo ve, če obstaja kakšen abstraction layer za novo knjižnico (kot na primer MDB2)?
Podobni članki:
- Povezava na MSSQL 2005 z uporabo PHP mssql knjižnice (MSSQL, PHP MSSQL, Windows, Apache)
- Povezava preko IIS-ja s PHP-jem na strežnik MSSQL 2005 z uporabo Windows Authentication načina (MSSQL, PHP SQLSRV, Windows, IIS)
- PHP – kako ugotoviti tip datoteke (get file extension type)
- PHP – povezovanje na MSSQL bazo – Linux,Windows (odbc,mssql,iOdbc)
- Namestitev in predelava WampServer 2 (php extensions, virtual host, httpd.conf, mod rewrite)
- PHP POST Request – brez uporabe cURL knjižnice
- Pretvorba PHP MySQL aplikacije v PHP MS SQL aplikacijo (apache, php, mdb2, mysql => iis, php, mdb2, mssql)
- Namestitev spletnega strežnika IIS – privzeti direktorij InetPub – konfiguracija



January 26th, 2009 ob 4:29 pm
[...] PHP - namestitev SQL Server 2005 knjižnice (SQLSRV extension) [...]
June 17th, 2009 ob 2:24 pm
[...] smo že, da je nova SQL Server 2005 knjižnica (SQLSRV extension) najboljša izbira pri povezavi na Microsoft.... Vendar starejše aplikacije še vedno uporabljajo knjižnice (kot je naprimer MDB2), ki [...]