22 Şubat 2012 Çarşamba

Php-Sql Server bağlantısında türkçe karakter çözümü.

Sql server karakter seti türkçe, benim kullandığım php internet uygulamasındaki karakter kodu utf-8. Bundan dolayı php ile sql server'a bağlanmaya çalıştığımda karakter sorunu yaşanıyordu. Uzun saatler uğraştıktan sonra çözümün gayet basit olduğunu buldu. Direkt olarak php.ini deki "mssql.charset"'i "UTF-8"'e çevirebilirsiniz veya kullandığınız yerdeki sayfanın başına ini_set("mssql.charset", "UTF-8"); şeklinde yazdığınızda sorun çözülmüş oluyor.

Jquery Mobile Dinamik grouped checkbox oluşturma

var _html = '<div  data-role="fieldcontain">'+
            '<fieldset data-role="controlgroup">'+
                '<legend>Mesaj gidecek kişiler:</legend>';

var k = 0;
$.each(data.items, function(key, item) {
    k++;
    _html += '<input type="checkbox" name="StRespName2[]" id="StRespName2-' + k + '" class="custom" value="' + item.id + '"/>'+
            '<label for="StRespName2-' + k + '">' + item.desc + '</label>';
                                    
});
                           
_html +=  '</fieldset>'+
            '</div>';
                           
$("#fld-StRespName2").html(_html);
$.mobile.pageContainer.trigger('create');

Php undefined function mb_convert_encoding hatasını giderme

Windows/Linux sunucuda mb_convert_encoding aktif etme.

Windows php_mbstring kurulumu
1
php.ini dosyasında extension=php_mbstring.dll satırını aktif ediniz.
Debian/Ubuntu linux php_mbstring kurulumu.
1
sudo apt-get install php-mbstring

Redhat/Centos linux php_mbstring kurulumu

1
yum install php-mbstring
Eğer yum kurulu değil ise öncelikle yum'u kurunuz.

Debian / Ubuntu Freetds Kurulumu

Debian/Ubuntu sunucu üzerinnden PHP ile Microsoft SQL Server'a bağlanma

FreeTDS ve PHP MS SQL uzantısının kurulumu
1
sudo apt-get install freetds-common freetds-bin unixodbc php5-sybase
Not:  MS SQL php uzantısının “php5-sybase” paketi olduğu doğru.

Apache web sunucuyu yeniden başlat.

1
sudo /etc/init.d/apache2 restart

FreeTDS'i tes et

1
tsql -H sunucu.adin -p 1433 -U kullaniciadin -P sifren -D veritabaniadin
Eğer bağlanabildiyseniz, Freetds kurulumu çalışıyor demektir.

FreeTDS Ayarını yapma

1
sudo vim /etc/freetds/freetds.conf
Aşağıdaki kodları dosyanın sonuna ekleyiniz:
1
2
3
4
[yourserver]
host = sunucu.adin
port = 1433
tds version = 8.0

Sunucu adı kullanrak FreeTDS'i test edelim

1
tsql -S sunucun -U kullaniciadin -P sifren -D vertabaniadin
Veri tabanından birşeyler getirmeye çaıştığınızda, unikod hatası almamanız gerekiyor. Çünkü “tds version = 8.0″ olarak belirttiniz.

PHP ile test edelim

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$link = mssql_connect('sunucuadin', 'kullaniciadin', 'sifren');
if (!$link) {
   die('Bağlantı kurulamadı!');
}
if (!mssql_select_db('veritabaniadin', $link)) {
   die('Veritabanı seçilemedi!');
}
$result = mssql_query('SELECT * FROM tablon');
while ($row = mssql_fetch_array($result)) {
   var_dump($row);
}
mssql_free_result($result);
?>