You are currently viewing PHP mssql server bağlanma

PHP mssql server bağlanma

Merhaba arkadaşlar bugün bana 4 saat kafayı yediren bir sunucudan bahsetmek istiyorum.PHP PDO mssql server bağlanma.

Sunucu windows server 2012 ve üzerinde plesk 11 versiyonu var her şey buraya kadar güzel. İşin patladığı nokta ise sunucu üzerine birde harici microsoft sql 2012 kurulmuş. :(( Oda olabilir dedik biz işimize bakalım yahu. Standart olarak kullanmış olduğum odbc bağlantı sınıfımı kullanarak bağlanmak istedim aldığım hata ise kocaman

[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied.

Kendimden şüphe ederek bütün ayarları 3 defa kontrol ettim. Bağlantı şekillerini değiştirdim farklı uygulamalar denedim banamısın demedi. Dedim herhalde verilen bilgiler hatalı aç sql management studio kontrol et arkadaş bağlanıyormu? sıkıntı yok bağlandı.

Dedim bende bir sorun var kalk hava al, sevgilinle konuş dedim. Aradan 10 dk geçtikten sonra tekrar kontrol ettim aşamaları izledim sıkıntı yok locale çevirdim bağlantımı. Aradım ilgili arkadaşı uzak masa üstü bilgilerini alıp kendim makinaya el attım nimed pipese kadar her ayarı kontrol ettim 2 3 sorunu düzelttim yine aynı. Bir ışık yandı aklımda bir abimin tavsiyesi olan PDO dön bakalım ne olacak. Oturdum kodlarımı güncelledim pdo işlemini döndüm. Bu seferda hata kodları değişti ama bağlanmama sorunu değişmedi. Dedim yerim böyle işi kendi makinamı kobay haline getirip birazda araştırıp testler ile sonucu çözdüm şimdi aşağıda bu işlemi nasıl yaptığımı anlatacağım sıkıntı yaşayan olursa yardımcı olurum.

Gelelim Olaya

Bu arada pdo döndükten sonra

 Uncaught exception 'PDOException' with message 'SQLSTATE[42S02]: Base table or view not found: 208 [Microsoft][SQL Server Native Client 11.0][SQL Server]Invalid object name

tarzında bir hata alırsanızda aşağıdaki yolu izlemenizi öneririm.

1. servislerinizi stop ediniz.

2. Microsoft PHP SQL Driver indirin

3. php.ini dosyanıza

[PHP_PDO_MSSQL] 
extension=php_pdo_sqlsrv_53_ts_vc9.dll

ekleyin

4. Bağlantı dosyanızı oluşturun

$db_server = '127.0.0.1'; 
$db_database = 'test'; 
$db_user = 'username'; 
$db_passwd = 'password'; 
$db = new PDO("sqlsrv:server=$db_server;database=$db_database;", $db_user, $db_passwd);

Yukarıdaki işlemler windows server sistemleri için geçerli olmaktadır. Bu işlemler php 5.3 için uygulanmış olmaktadır. PHP versiyonlarına göre işlemler değişiklik göstermektedir.

Redhat sistemlerde bu işlem biraz daha karışık şekilde oluşmaktadır, farklı bir yazımda linux işletim sistemlerinde bu işlemin nasıl yapıldığını size uzun bir şekilde resimlendirip bu konuyuda sizlere aktaracağım.

  bu işlemler sonrasında sıkıntınız sona ermiş olacaktır. Bu yolu izleyerek PHP PDO mssql server bağlanma işlemlerini yapabilirsiniz.  

kurtitasarim

‘’İrade ve yargıları aşan güçlü bir coşku, ihtiras" diye tanımlanır tutku. Yaptığın işi sevmek yerine, sevdiğin işi yap mottosu da benim tutku tanımım. Kod yazmak bir yana, o kodun sistem üzerindeki hareketlerini, farklı cihazlar ile etkileşimini, o noktalarda oluşan sıkıntıları görmek, çözmek ve bunu yaparken diğer kişilere yol göstermek işimin en zevkli yanı. Bu sebeple önce tutku ile yapılan iş, sonra maddiyat..

This Post Has 4 Comments

  1. Ahmet TORPİL

    Teşekkürler Üstad.

  2. Emre Can

    sql server 2012 kullanıyorum prot üzerinden bağlantı yapıyorum. düşük seviyede bir html ile admin paneli yaptım. sql de yaptıgım veritabanını ip üzerinde ve port üzerinden paylaştırıyorum.ne yaptıysam bağlanamadım.yardımcı olurmusunuz.

    1. kurtitasarim

      Merhabalar, bağlantı sağlamaya çalıştığınız makina local şeklindemi yoksa farklı iki makinadanmı haberleştirmeye çalışıyorsunuz. Cevaplar buna göre değişmektedir, firewall olabilir makina üzerinde odbc kurulu olmayabilir. Detaylı bilgi verir yada mail atarsanız yardımcı olmaya çalışırım.

  3. isik

    teşekkür

Bir cevap yazın