PHP MySQL SELECT metin kesildi

2 Cevap php

I have a MySQL table with a column 'full_description' of type 'text'. In that column is a standard lorem ipsum (plus the word END):

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. END

Php üzerinde bir seçme yaparken Oysa, yalnızca bu kadar alır:

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor i

İşte o alır php kodu:

function getPostingDetails($posting_id){
    	$getPosting = $this->PLAST->prepare('SELECT posting_id, poster_id, title, short_description, full_description FROM postings WHERE posting_id=?');
    	$getPosting->bind_param('i',$posting_id);
    	$getPosting->execute();
    	$getPosting->bind_result($row['posting_id'],$row['poster_id'],$row['title'],$row['short_description'],$row['full_description']);
    	$getPosting->fetch();
    	$getPosting->close();
    	return $row;		
    }

Bu benim olsun dizidir:

Array ( [posting_id] => 1 [poster_id] => 1 [title] => Test 1 [short_description] => This is a short description. [full_description] => Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor i )

The rest of the fields are fine. What am I doing wrong? Or is there a setting or feature that I'm not aware of that limits the SELECT statements? In MySQL? In PHP mysqli?

Teşekkürler

Bu istek üzerine tablo yapısı:

CREATE TABLE `postings` (
  `posting_id` int(11) NOT NULL AUTO_INCREMENT,
  `poster_id` int(11) NOT NULL,
  `title` tinytext NOT NULL,
  `short_description` tinytext NOT NULL,
  `full_description` text NOT NULL,
  PRIMARY KEY (`posting_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1

2 Cevap

Kullandığınız çerçeve nedir? Bu veri türü METİN bazı varsayılan sınırlama olduğunu düşünüyorum.

Çerçevenin Ben veritabanına erişmek PHP kütüphanesi demek:

    $getPosting->bind_param(...);
    $getPosting->execute();
    $getPosting->bind_result(...);
    $getPosting->fetch();
    $getPosting->close();

Yukarıda bir kütüphaneden gelen işlevlerdir. Ve en olası bu kütüphane METİN alanın uzunluğu için varsayılan kısıtlamaları olmasıdır.

EDITED:

SQL Server ve PHP ile benzer bir sorun bulduk here. Onlar bu gibi yapmak öneririm:

SELECT CAST(F AS TEXT) AS F FROM

Belki tersini yapabilirsiniz:

SELECT ..., CAST(full_description AS VARCHAR) FROM postings

Eğer almak ve php saklamak için önce boş bir dize başlatmak için deneyin .... ben sadece bir dizenin ilk harfi saklamak istiyorsunuz benzer bir sorun vardı, ama buna saklamadan önce VAR başlatıldı zaman, o amele