T&R splet blog o spletnih storitvah. Razgaljamo tehnologijo!

reference spletnih strani
17th June

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:

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:

PHP:
  1. $link = mssql_connect(''ROKYSQLEXPRESS'', null, null); // null, null uporabimo za Windows authentication mode, drugače uporabimo username in password
  2. if(!$link) {
  3.     die(mssql_get_last_message());
  4. }
  5. echo ''dela, juhu'';

Različne možnosti povezave:

1.) Uporaba MS SQL knjižnice (zgornji primer malce drugače)

PHP:
  1. if ($conn = mssql_connect(''(local)SQLEXPRESS'')) {
  2.     echo("Povezava uspela");
  3.     mssql_select_db(''dbname'', $conn);
  4.     mssql_close($conn);
  5. } else {
  6.     echo("Povezava ni uspela");
  7.     echo(mssql_get_last_message());
  8. }

2.) Uporaba SQLSRV knjižnice:

PHP:
  1. $serverName = "ROKYSQLEXPRESS";
  2. $connectionInfo = array("Database"=>"dbname"); // defeniramo le bazo, izpustimo uporabiško ime in geslo zaradi windows authentication načina
  3. // Inicializiramo povezavo
  4. $conn = sqlsrv_connect( $serverName, $connectionInfo);
  5. if( $conn === false ) {
  6.   echo "Napaka pri povezavi.</br>";
  7.   die( print_r( sqlsrv_errors(), true));
  8. }
  9. echo ''Deluje, JUHU!'';

3.) Uporaba ODBC knjižnice:

PHP:
  1. $connection_string = ''DRIVER={SQL Server};SERVER=ROKYSQLEXPRESS;DATABASE=ime_baze'';
  2. $connection = odbc_connect( $connection_string, null, null);
  3.  
  4. if ($connection) {
  5.   echo ''Povezava uspela'';
  6. } else {
  7.  echo ''Povezava ni uspela'';
  8. }

4.) Uporaba MDB2 mssql gonilnika in MDB2 knjižnice:

PHP:
  1. require_once ''MDB2.php'';
  2. $connReference = MDB2::factory("mssql://:@ROKY1QLEXPRESS/ime_baze", array(''persistent''=>true));
  3.  
  4. if (PEAR::isError($connReference)) {
  5.     echo ''Povezava ni uspela'';
  6.     echo $connReference->getUserinfo();
  7. } else {
  8.     echo ''Povezava uspela'';
  9. }

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:

Podobni članki:

  1. Povezava preko IIS-ja s PHP-jem na strežnik MSSQL 2005 z uporabo Windows Authentication načina (MSSQL, PHP SQLSRV, Windows, IIS)
  2. PHP – namestitev SQL Server 2005 knjižnice (SQLSRV extension)
  3. PHP – povezovanje na MSSQL bazo – Linux,Windows (odbc,mssql,iOdbc)
  4. Pretvorba PHP MySQL aplikacije v PHP MS SQL aplikacijo (apache, php, mdb2, mysql => iis, php, mdb2, mssql)
  5. WAMP – Windows – mail smtp strežnik – pošiljanje epošte
  6. HTML Mime Mail PHP – nastavljanje kodne tabele (charset – windows-1250 – UTF-8) – Outlook Express
  7. UTF-8 tabele, vendar latin1 podatki ter povezava
  8. Iskalnikom in uporabnikom prijazni URL-ji (User – SEO freindly URL – Apache, IIS)
  9. PHP POST Request – brez uporabe cURL knjižnice
  10. PHP GET Request – Basic Authorization – Chunk data

Dodaj komentar