25 Temmuz 2014 Cuma

Linux üzerinden PHP ile MS SQL Bağlantısı yapmak

Merhaba, bu yazımda sizlere linux sunucu üzerinden PHP ile Microsft SQL Server database ine nasıl erişim yapılacağından bahsedeceğim.

Şöyle bir senaryo düşünelim;  Ubuntu server üzerinde PHP ile web projeleri geliştiriyorusunuz.

Uzak bir veri tabanından data çekmeye ihtiyaç duydunuz. Ve neyazıkki uzaktaki veri tabanı Microsoft SQL Server. Eğer bu veri tabanı PostgreSQL yada MySQL olsaydı PHP ile bu veri tabanına bağlantı yapmanız çok kolaydı.
Fakat ben araştırdım ki PHP ile ubuntu üzerinden MS SQL Server a bağlanmak ta enaz onlar kadar kolay.

Aslında Microsoft un PHP için SQL Server bağlantısı yapan driver ı var. Fakat tahmin edeceğiniz üzere Windows platformu üzerinde çalışan PHP geliştiriciler için. Yani siz linux üzerinde bu driver ı kullanarak SQL server'a bağlanamıyorsunuz.  Ancak SQL Server erşimi için  freetds adında  ücretsiz bir open source driver var. Linux veya türevi işletim sistemleri üzerinde geliştirme yapıyorsanız bu driver ı kullanabilirsiniz.


Tabi Öncelikle SQL Server sizin TCP/IP bağlantılarınızı kabul etmesi gerekir. Yani SQL Server sunucusuna  erişim yetkilerinizin olması gerekiyor.


Aşağıdaki komutları sırasıyla çalıştırarak freetds driveri ubuntu üzerinde kuralım:


FreeTDS ve PHP MS SQL uzantısı için
sudo apt-get install freetds-common freetds-bin unixodbc php5-sybase

Apache servisini restart et
sudo /etc/init.d/apache2 restart

FreeTDS ile bağlantı testi
tsql -H SunucuAdi-p 1433 -U kullaniciAdi -P Sifre -D veritabaniAdi

Eğer bağlanırsa çalışıyor demektir.


ÖRNEK PHP Bağlantısı:
$link = mssql_connect('yourserver', 'yourusername', 'yourpassword');

if (!$link)
    die('Unable to connect!');

if (!mssql_select_db('yourdatabasename', $link))
    die('Unable to select database!');

$result = mssql_query('SELECT * FROM yourtable');

while ($row = mssql_fetch_array($result)) {
    var_dump($row);
} 
mssql_free_result($result);



 NOT: Yazının bazı kısımları  ingilizce kaynaklardan türkçeleştirilmiştir.

2 yorum:

  1. senden allah razı olsun , kaç gündür denemediğim kod kalmadı. sonunda projeme başlaya bileceğim.
    localhostta msql bağlantısı ile kullandığım muhasebe programına entegrasyon sağlayıp webten yoneteceğim ancak localde çalışan bağlantıyı hostingde çalıştıramadım , ama senin sayende bağlantı sağladım güzel çalışıyor. tekrardan teşekkür ederim...

    YanıtlaSil
    Yanıtlar
    1. Teşekkürler yorumunuz için. Faydalı olabildiysem ne mutlu.

      Sil