21 Ekim 2013

Sqlsrv ile php üzerinden mssql bağlantısı kurmak

PHP 5.3 den sonra mssql veritabanı işlemleri Microsoft'un yayınladığı sqlsrv kütüphanesi ile yapılmaktadır. PHP 5.2 den önce mssql.dll kütüphanesi kullanılıyordu.(bakınız)

Öncelikle yapmamız gereken Microsoft'un sitesinden sqlsrv kütüphanesini indirmek.
http://www.microsoft.com/en-us/download/details.aspx?id=20098

İndirdikten sonra kurulum dosyasını çalıştırdığımızda kütüphane dosyalarını nereye çıkarılacağını seçtikten sonra dosyalar seçilen klasöre çıkarılır. (PHP klasörü içerisinde 'ext' klasörü uygun yerdir, diğer php kütüphane dosyalarının bulunduğu klasör ;) Dosyalarımızı çıkardık varsayıyoruz.



Şimdi kullanacağımız sqlsrv kütüphanesini php.ini dosyasına eklememiz gerek. Php, php.ini dosyası içerisindeki ayarlara göre başlatılır. Bu yüzden bu dosya  içerisine sqlsrv kütüphanesini de kullan dememiz gerekir. Bunun için php.ini dosyasını açıp içerisinde herhangi bir yere(en alt uygundur :) şu satırı eklememiz gerekir (non-thread-safe kullandık):

extension=php_sqlsrv_53_nts.dll

Tabi biz burada sqlsrv dosyalarını PHP klasörü içerisindeki 'ext' klasörüne çıkardığımızı varsaydık; aksi halde tam yerini bildirmemiz gerek. php.ini dosyası içerisinde 'extension_dir' parametresini arattığınızda default olarak 'ext' klasörüne işaret ettiğine bakabilirsiniz :

extension_dir="C:\Program Files (x86)\PHP\ext"
gibi...

php.ini klasörüne 'extension=php_sqlsrv_53_nts.dll' ekleyip kaydettikten sonra sunucu servisleri yeniden başlatmamız gerekir ki, php tekrar başlatılsın. (Sunucu servislerini yeniden başlatmayı daha önce anlatmışımdır muhtemelen)

Sırada sqlsrv kodlamaları var: Detaylı bilgi için: http://php.net/manual/en/book.sqlsrv.php
Biz küçük bir örnek verelim:

$serverName = "192.191.x.x"; //sunucu adresi\instanceName(varsa)

$connectionInfo = array( "Database"=>"veritabanı_ismi", "UID"=>"kullanici_adi", "PWD"=>"şifre");

$conn = sqlsrv_connect( $serverName, $connectionInfo);



if( $conn ) {

     echo "Bağlantı kuruldu.<br />";

}else{

     echo "Bağlantı kurulamadı.<br />";

     die( print_r( sqlsrv_errors(), true));

}

$query_menu     =
            "SELECT 
                * 
            FROM 
                tablo_ismi";

// Parametreler belirlenir, parametremiz  yok
$params=array();

// Gelen query ve parametreler ile sorgu calistirilir
$result = sqlsrv_query( $conn, $query_menu);

// Calistirilan sorguda hata olup olmadigi kontrol edilir
if( $result === false ) 
{
   // Sorguda hata varsa islem sonlandirilir
   echo 'Gonderilen sorgu hatali!<br />';
   die( print_r( sqlsrv_errors(), true));
}
   
// Her bir menu item icin menu isimleri ve id leri cekilir
while ($satir=sqlsrv_fetch_array($result))
{
   var_dump($satir);
   echo '<br />';
}

Umarım yardımcı olabilmişimdir, kolay gelsin...

Bu Blogda Ara

İletişim

Ad

E-posta *

Mesaj *