MS SQL Server ODBC sorgu sadece PHP PDO ilk 255 karakteri dönen (freetds)

2 Cevap php

Şu anda bizim Linux web sunucusundan sınırlı erişimi olan bir SQL Server veritabanı görünümünde bazı verileri çekmeye çalışıyorum.

Biz veri sadece bir web sayfası görüntülemek düzenlemek gerekmez.

Biz çıktı çalışın ve yalnızca bir metin alanının ilk 255 karakteri almak kadar tüm ince görünüyor.

Bu PHP'nin PDO :: yoluyla veya para cezası çalışması gerekir freetds kullanarak bir sorun olup olmadığını biliyor mu? Ben orada benzer sorunlar yaşıyorsanız diğer insanlar gördüm, ama pek çok cevap var gibi görünüyor değil.

Ben MS SQL db için bağlantı dizesi olarak kullanıyorum:

$dbConn = new PDO("odbc:Driver=FreeTDS;DSN=OURDSN;UID=WWWUser;PWD=ourpassword");

2 Cevap

Göre this, sorun, SQL Server konuşurken freetds sadece varchar 255 karaktere kadar işleyebilir gibi görünüyor "due to limitations inherent in the protocol definition". Bu daha büyük bir şey veri tipi text olması gerekir.

Siz buna göre şemayı değiştirerek, ya da bu gibi, sorgusu sırasında veri türü dönüştürme yoluyla sorunu çözebilirsiniz:

SELECT CAST(mycol as TEXT) FROM mytable

Sen FreeTDS tarafından kullanılan / etc / odbc.ini dosyasında metin alanlarının boyutunu artırabilir.

[name_of_connection]
TextSize = 2097152

Ayrıca daha PDO kullanarak kadar geri çalışma, veri alma o düzeyde alabilirsiniz emin olmak için PHP düşük seviye odbc rutinleri kullanarak deneyebilirsiniz.