12 Nisan 2015 Pazar

Windows üzerinden PHP ile MS SQL Bağlantısı yapmak (Pdo)

Herkese merhaba,
daha önce sizlere Linux üzerinden PHP ile MsSQL bağlantısının nasıl yapılacağını anlatmıştım. Bu yazımda ise windows üzerinden PDO ile MsSQL bağlantısı yapmak ve sorgu çalıştırmayı anlatacağım.

Arkadaşlar ben windows ortamlarında geliştirme yapacağım zaman  genellikle  appserv(php+mysql+apache) paketini kullanıyorum. Sade ve basit olduğu için böyle bir tercih yaptım.  yazının devamı Appserv paketinin  dizin yapısına göre gidecek ancak Xampp,Wamp...vs  diğer paketleri kuranlarda yazının belli adımlarını  kendilerine göre uyarlayıp bu anlatımdan faydalanabilirler. 

Öncelikli olarak bilgisayarımıza  kurduğumuz PHP versiyonunu öğrenelim. Aşağıdaki komut PHP sayfasına yazıp sayfayı web browser üzerinden çağıralım.
<?php phpinfo();  ?> 

Yine bu komut sayesinde PHP_PDO nun varsayılan olarak desteklediği DB listesini görelim(bende sadece sqlite desteği aktif olarak ayarlı gelmiş). 


aşağıdaki linkten kullandığınız PHP nin versiyonuna uygun Dll leri indirin.
http://www.microsoft.com/en-us/download/details.aspx?id=20098 indirdiğiniz dosyayı çalıştırın ve içindeki DLL leri bir klasöre çıkarın.

Bu Dll klasöründen kendi PHP versiyonunuza uygun PDO dll lerini alın ve php extention dizinine kopyalayın. Benim makinemde extentions dizini c:\AppServ\Php5\Ext  olarak set edilmiştir. Siz bu kopyalama işlemini kendi ayarlarınıza göre yapmalısınız.


Daha sonra php.ini(varsayılan olarak c:\\windows altında olur) dosyasını açıp  php versiyonunuza uygun olarak kopyaladığınız Dll leri bu dosya üzerinden aktif edin.  aşağıdaki satırlar php 5.2 için  pdo sqlsrv yi aktif eder. 

php.ini
extension=php_pdo_sqlsrv_52_nts_vc6.dll
extension=php_pdo_sqlsrv_52_ts_vc6.dll

daha sonra servislere gidip(start+run+services.msc+enter)  ayarları baştan okuması için  apache2.2 servisini restart edin.

Yaptığınız aktivasyonları görmek için yine phpinfo() fonksiyonunu çağırın
<?php phpinfo();  ?> 

Alttaki ekran görüntüsünde olduğu gibi pdo_sqlsrv nin aktif edilmiş olduğunu göreceksiniz.  



Üsetteki aşamaları adım adım yaptığınızda Php ile mssql bağlantısı yapabilmektesiniz. Ancak öncesinde bilgisayarınıza sql server native client'ın kurulu olması gerekmektedir. C:\Windows\system32 nin altında sqlncli11.dll yoksa aşağıdaki bu dll'i bulup system32 dizinine ekleyin yada aşağıdaki adımları takip ederek wizard yardımıyla   sql server native client'ı bilgisayarınızda aktif edin.

Download : SQL Server Native Client

bu adresten indirdiğiniz exe dosyasını çalıştırıp next diyerek wizardı sonlandırın.



Pdo SQL server bağlantısı ve Select  cümlesi örneği
<?php
try {
    $hostname = "localhost";
    $port = 10060;
    $dbname = "my_database";
    $username = "username";
    $password = "password";

    $dbh = new PDO("sqlsrv:Server=192.168.1.7;Database=customerdb", "sa", "123456");

    $sql = "SELECT * FROM animals";
    foreach ($dbh->query($sql) as $row) {
        print $row['animal_type'] . ' - ' . $row['animal_name'] . '<br />';
    }
} catch (PDOException $e) {
    echo $e->getMessage();
}
?>
  

1 yorum: