Povezava na MSSQL 2005 z uporabo PHP mssql knjižnice (MSSQL, PHP MSSQL, Windows, Apache)
Pisali smo že, da je nova SQL Server 2005 knjižnica (SQLSRV extension) najboljša izbira pri povezavi na Microsoft SQL 2005/2008 bazo s pomočjo PHP-ja. Vendar starejše aplikacije še vedno uporabljajo knjižnice (kot je naprimer MDB2), ki uporabljajo PHP mssql knjižnico. Na TRSplet blogu smo že pisali kako se povezati na MS SQL podatkovno bazo s pomočjo ODBC-ja oz. FREETDS iz linux strežnika, sedaj si poglejmo kako se povezati na MS SQL 2005 podatkovno bazo s pomočjo PHP-ja na Windows strežniku, kjer teče spletni strežnik apache.
Potrebujemo:
- PHP 5.2.x ter Apache2 (raje uporabite Wamp)
- MS SQL 2005 Express podatkovno bazo
- ntwdblib.dll, verzije 80.194
Postopek:
1.) Namestimo Apache, PHP
2.) Omogočimo mssql knjižnico v php.ini (xtension=php_mssql.dll)
3.) V primeru, da uporabljamo Windows authentication mode, v php.ini nastavimo mssql.secure_connection = On, v primeru da uporabljamo Mixed auth mode nastavimo na Off. The user is not associated with a trusted SQL Server connection je napaka, ki se pojavi, če uporabljate Windows authentication mode in mssql.secure_connection = Off.
4.) Namestimo MS SQL 2005 Express podatkovno bazo
5.) Kopiramo ntwdblib.dll v apache2bin. Na primer: D:WampbinapacheApache2.2.11bin
6.) V php-ju kreiramo povezavo na MSSQL:
Različne možnosti povezave:
1.) Uporaba MS SQL knjižnice (zgornji primer malce drugače)
2.) Uporaba SQLSRV knjižnice:
-
$serverName = "ROKYSQLEXPRESS";
-
$connectionInfo = array("Database"=>"dbname"); // defeniramo le bazo, izpustimo uporabiško ime in geslo zaradi windows authentication načina
-
// Inicializiramo povezavo
-
$conn = sqlsrv_connect( $serverName, $connectionInfo);
-
if( $conn === false ) {
-
echo "Napaka pri povezavi.</br>";
-
}
-
exit;
3.) Uporaba ODBC knjižnice:
4.) Uporaba MDB2 mssql gonilnika in MDB2 knjižnice:
Dodatne informacije:
1.) DNS mssql://username:password@server/baza, primer: mssql://test:test@ROKYSQLEXPRESS/db_test
2.) Pri uporabi ODBC knjižnice lahko dobite sledečo napako Cannot generate SSPI context, SQL state S1000 in SQLConnect. V tem primeru sledite navodilom za uporabo cliconfig.exe programa.
Dodatne povezave:
- Možne napake pri povezavi z uporabo PHP mssql knjižnice
- Komentarji uporabnikov na PHP.net pri mssql connect funkciji
- SQL Server Driver for PHP: Understanding Windows Authentication
Podobni članki:
- Povezava preko IIS-ja s PHP-jem na strežnik MSSQL 2005 z uporabo Windows Authentication načina (MSSQL, PHP SQLSRV, Windows, IIS)
- PHP – namestitev SQL Server 2005 knjižnice (SQLSRV extension)
- PHP – povezovanje na MSSQL bazo – Linux,Windows (odbc,mssql,iOdbc)
- Pretvorba PHP MySQL aplikacije v PHP MS SQL aplikacijo (apache, php, mdb2, mysql => iis, php, mdb2, mssql)
- WAMP – Windows – mail smtp strežnik – pošiljanje epošte
- Windows – lokalni MySQL uvoz podatkovne baze – velika podatkovna baza – težave pri uvozu velikih MySQL baz
- HTML Mime Mail PHP – nastavljanje kodne tabele (charset – windows-1250 – UTF-8) – Outlook Express
- UTF-8 tabele, vendar latin1 podatki ter povezava
- Iskalnikom in uporabnikom prijazni URL-ji (User – SEO freindly URL – Apache, IIS)
- PHP GET Request – Basic Authorization – Chunk data


