PHP - SQL Server 2005 2008 standart sorunu ifade

4 Cevap php

Ben aşağıdaki sistemde mutlu çalışan bir PHP uygulaması var:

  • web uygulaması: PHP version 5.2.3
  • OS: Windows Server 2003 Stveard 32 bit
  • veritabanı: SQL Server 2005 (ekspres)
  • web sunucusu: IIS 6

Ben şu üzerinde çalışan aynı şey almaya çalışıyorum:

  • web uygulaması: PHP version 5.2.11
  • OS: Windows Server 2008 Stveard 64 bit
  • veritabanı: SQL Server 2008 Stveard 64-bit
  • web sunucusu: 7 IIS

Yaptıktan sonra yüklemek ve kurulumu ben genellikle, phpinfo () çalışıyor ama hiçbir MSSQL bölümü vardır. Etrafıma baktım ve bir php_sqlsrv.dll kullanarak sistemi kurmak için bazı MS belgeleri bulundu ve denedim ama veritabanına bağlanmak için farklı bir arayüz kullanmak gibi görünüyor ettik (artık mssql_connect() , şimdi sqlsrv_connect() bulunuyor). Bu SQL Server 2008 için php bağlanmak veya sadece kurulum yanlış var tek yolu var mı? Ben geri PHP 5.2.3 gitmek ve işe sahip olabilir, bu iyi olacak ama yardımcı olmaz eğer ben ne geri almak istemiyordu.

Teşekkürler,

4 Cevap

Bunun nasıl MSDN'de geniş bir öğretici vardır.

http://msdn.microsoft.com/en-us/library/cc793139%28SQL.90%29.aspx

Php_mssql.dll adında uzantısı eski bir Microsoft kütüphanesinden (ntwdblib.dll) ile bağlantılıdır. Bu kütüphane son MS SQL Server 6.5 ile güncellendi. Bu 32 bit kütüphane bulunuyor ve veritabanı yeni sürümleri tanıtıldı pek çok yeni özellik desteklemez. Bu freetds kullanarak uzantısı bir sürümünü derlemek mümkündür. Bu TDS protokolünün son sürümüne erişim verecektir. Bu aynı zamanda bir Linux / Unix tabanlı sisteminden SQL Server erişim sağlar.

Php_sqlsrv.dll adında uzantısı Microsoft tarafından geliştirilen ve korunur SQL server daha yeni sürümleri için daha iyi destek verir ve bunu açıklamak hem ortamlarda çalışmalıdır.

Php kurulum ext klasöründe php_mssql.dll adında bir dll olmalıdır. Bu extension = php_mssql.dll ile php.ini dosyasıyla yüklenen emin olmak isteyeceksiniz. Bu web sunucusu yeniden başlattıktan sonra () phpinfo gösterilmiyor değilse size Fast CGI ile şeyler kurdum nasıl bağlı PHP yanlış parçacığı güvenli sürümü yüklü olabilir. Sen sqlsrv (PHP için SQL Server sürücüsü) kullanarak bir sorun olmamalıdır. Ben ancak bazı gelişmeler var ve SQL Azure destekler sürücüsünün 1.1 sürümünü kullanarak öneriyoruz. Göreceksiniz bir şey PHP DateTime yerine dizeleri nesneler olarak datetime sütun geri gelmek olduğunu. Ben de sadece Microsoft Web Platform Installer ile yığını yüklerseniz çok daha az sorunlarla fark ettik.

Bu sorunu olan ve neredeyse saat boyunca benim saç yırtılma ve vazgeçerek sonra, ben cevabı buldum:

http://docs.moodle.org/22/en/Installing_MSSQL_for_PHP#Using_FreeTDS_on_Windows

php_dblib.dll eski mssql php fonksiyonlarını (mssql_connect(), vb) destekleyen "yeni" dll. Yani temelde bu yeni dll php_mssql.dll değiştirir ve daha önce olduğu gibi her şey çalışıyor. (Eh artık benim için yapar)

Benim sunucu kurulum:

O/S: Windows Server 2008,
DB: MSSQL Server 2008 R2,
PHP: 5.3.13

Alıntı phpinfo():

System  Windows NT XXXXXXXXXXXXX 6.1 build 7601 (Windows Server 2008 R2
Enterprise Edition Service Pack 1) i586 Build Date  May 8 2012 18:41:52
Compiler    MSVC9 (Visual C++ 2008) Architecture    x86

Configure Command   cscript /nologo configure.js
"--enable-snapshot-build" "--enable-debug-pack" "--disable-zts"
"--disable-isapi" "--disable-nsapi" "--without-mssql"
"--without-pdo-mssql" "--without-pi3web"
"--with-pdo-oci=C:\php-sdk\oracle\instantclient10\sdk,shared"
"--with-oci8=C:\php-sdk\oracle\instantclient10\sdk,shared"
"--with-oci8-11g=C:\php-sdk\oracle\instantclient11\sdk,shared"
"--with-enchant=shared" "--enable-object-out-dir=../obj/"
"--enable-com-dotnet" "--with-mcrypt=static"
"--disable-static-analyze"

Server API  CGI/FastCGI
Virtual Directory Support   disabled
Configuration File (php.ini) Path   C:\Windows
Loaded Configuration File   C:\Program Files (x86)\PHP\v5.3\php.ini

Bu birisi biraz zaman kazandırır umuyoruz.