Metin karakter sınırını mssql_fetch_object?

4 Cevap php

Ben mssql_fetch_object kullanarak bir MSSQL tablosundan bazı verileri alma değilim, ama metin sayfada kesilmiş görünüyor.

Veriler tüm orada tabloda, ancak görünüm sayfasında kesilmiş gibi görünüyor.

Başkasının bu sorunla karşılaştı ve belki bir geçici çözüm bilir? İşte benim kod;

<?php include('includes/session.php');
$query = "SELECT content FROM pages WHERE id = '11'";
$result = mssql_query($query);
$page = mssql_fetch_object($result);
?>

<div id="leftcol">
<?php echo stripslashes($page->content) ?>
</div>

4 Cevap

Ben php mssql kullanarak aşina değilim, ama sadece sorun olmadan mysql kullanarak bir örnek çalıştı.

Bu benim için şüpheli görünüyor

Var_dump () (4096) dizesini döndürdü

bu yüzden bazı googling yaptım ve bu bağlantı bulundu

http://www.bram.us/2007/07/05/my-dotd-ms-sql-vs-php-4096-is-the-default-limit/

Bu mssql.textlimit değiştirebilir ve varsayılan yardımcı olur 4096. Umut gibi php.ini (220 olan) 1048576 için mssql.textsize önerir.

php.ini

  ; Valid range 0 - 2147483647.  Default = 4096.
  mssql.textlimit = 1048576
  ; Valid range 0 - 2147483647.  Default = 4096.
  mssql.textsize = 1048576

Bir VARCHAR alan var mı? http://docs.php.net/mssql_field_length diyor ki:

Note: Note to Windows Users
Due to a limitation in the underlying API used by PHP (MS DBLib C API), the length of VARCHAR fields is limited to 255. If you need to store more data, use a TEXT field instead.

veri strlen () deneyin ve veritabanı içinde veri uzunluğunu karşılaştırın. Size sorunu (db veya php) olduğu bazı göstergesi vermelidir

Ayarlamak için deneyin

mssql.textlimit = 10000000
mssql.textsize  = 10000000

php.ini veya ini_set('mssql.textlimi', 10000000); ile ayarlayın