• 05-10-2015, 17:40:45
    #1
    Merhaba,
    MSSQL veritabanını wordpress'e geçirmek için php kodlaması yapmam gerekli.
    Bunun için ilk önce microsoft tabanlı SQL Servere bağlanmam gerek.

    $user = 'atakan';
    $pass = '147';
    $server = 'PC-ATAKAN';
    $database = 'atakan_db';
    $connection_string = "DRIVER={SQL Server};SERVER=$server;DATABASE=$database";
    $baglan = odbc_connect($connection_string,$user,$pass);
    if ($baglan) {
        echo "BAĞLANDI !<br/>";
    	$kayitlar = odbc_exec($baglan,"Select * From Personel");
    	while($kayit = odbc_fetch_array($kayitlar)){
    		$data = $kayit["adi"];
    		echo $data."<br>";
    	}
    	odbc_close($baglan);
    	
    } else{
        die("Bağlantı sorunu");
    }
    Bu şekilde çalışıyor ancak tr karakter sorunu veriyor.
    Bknz ;


    Bu sorunu çözmek için utf8_encode kullanıyorum bu seferde
    İÇŞÜĞÖIi karakterleri ÝÇÞÜÐÖIi şeklinde oluyor. Bunun için str_replace kullanamaya çalıştım oda yemedi.

    Araştırmalarım sonucunda şöyle birşey buldum ;
    $connection_string = "Driver={MySQL ODBC 3.51 Driver};Server=$server;charset=UTF8;Database=$database;Option=3;";
    Bu hiç bağlanmadı veritabanına. 3.51 versionu ile charset seti verilebiliyormuş sanırım.

    Ayrıca bu kodu da kullandım yemedi :
    ini_set('mssql.charset', 'UTF-8');
    Kafayı yiycem derken farklı bir yöntem buldum sqlsrc_connect
    $serverName = "PC-ATAKAN"; 
    $connectionInfo = array( "Database"=>"atakan_db", "CharacterSet" =>"UTF-8", "UID"=>"atakan", "PWD"=>"147"); 
    $conn = sqlsrv_connect( $serverName, $connectionInfo);
    
    if( $conn === false ) {
        die( print_r( sqlsrv_errors(), true));
    }
    Sanırım bu fonksiyonun çalışması için php_sqlsrv_56_ts.dll denilen dosyayı php.ini'den import etmek gerekiyormuş. Exe'ini bulup xampp/php/ext yoluna yükledim. php.ini'yi de kodu ekledim.
    Sürüm farklarını bile kontrol ettim. Bu kodla da hiç bağlanmıyor ! Yardımcı olanlara şimdiden teşekkürler
  • 06-10-2015, 09:19:26
    #2
    Alıntı
    function tr_karakter_sorunu($data) {
    $data = utf8_encode($data);
    $cevrilecek = array(
    'ý','Þ','Ý','Ð','ð','þ'
    );
    $cevrilen = array(
    'ı','Ş','İ','Ğ','ğ','ş'
    );
    $data = str_replace($cevrilecek, $cevrilen, $data);
    return $data;
    }
    Belki aynı sorunla uğraşan arkadaşlar kullanır. Anca böyle yapabildim. Başka türlü halledemedim. Ne kadar stabil orası tartışılır.