Lösung dafür, warum Texttypfelder in MSSQL-Datenbanken in PHP abgeschnitten werden

WBOY
Freigeben: 2016-07-29 09:13:58
Original
1166 Leute haben es durchsucht

MSSQL-Datenbank wurde in PHP verwendet und es kam vor, dass Felder vom Typ Text in der Datenbank verwendet wurden, sodass das Problem auftrat. Jedes Mal, wenn ich die Daten aus der Datenbank abfrage, werden sie aus unerklärlichen Gründen abgeschnitten. Zuerst dachte ich, dass das von mir verwendete PHP-Framework eine Begrenzung der Länge der Zeichenfolge hat Eine dumme Idee, da beim Senden von Daten alle Zeichenfolgeninhalte an die Datenbank übermittelt werden können, dieses Phänomen jedoch nur beim Lesen auftritt. Deshalb habe ich online gesucht, ob es ähnliche Probleme gibt. Ich hatte das Glück, die Lösung bei meiner ersten Suche zu finden, also beschloss ich, sie für den gelegentlichen Bedarf von mir selbst und der Mehrheit der PHP-Enthusiasten erneut auf meinem Blog zu veröffentlichen.
Es gibt zwei Lösungen:
1. Ändern Sie php.ini, um dies zu erreichen:
Öffnen Sie php.ini. Sie sehen zwei Optionen: mssql.textsize und mssql.textlimit:
; Gültiger Bereich 0 - 2147483647. Standard = 4096.
;mssql.textlimit = 4096
; Gültiger Bereich 0 - 2147483647. Standard = 4096.
;mssql.textsize = 4096
Sie können sehen, dass die Die Standardkonfiguration beträgt 4096 Bytes, die oft auf 4 KB gekürzt wird. Ändern Sie sie auf eine geeignete Größe, entfernen Sie das Semikolon davor, speichern Sie dann den WEB-Server und starten Sie ihn neu.
Anhand der beiden oben genannten Optionen können Sie erkennen, dass der Bereich zwischen 0 und 2147483647 Byte liegt.

Lösung dafür, warum Texttypfelder in MSSQL-Datenbanken in PHP abgeschnitten werdenif(MS_SQL_G(textlimit)!=-1){
Lösung dafür, warum Texttypfelder in MSSQL-Datenbanken in PHP abgeschnitten werden
sprintf(buffer,"%li ",MS_SQL_G(textlimit));
Lösung dafür, warum Texttypfelder in MSSQL-Datenbanken in PHP abgeschnitten werden
if(DBSETOPT(mssql.Link,DBTEXTLIMIT,Puffer)== FAIL){
Lösung dafür, warum Texttypfelder in MSSQL-Datenbanken in PHP abgeschnitten werdenefree(hashed_details);
Lösung dafür, warum Texttypfelder in MSSQL-Datenbanken in PHP abgeschnitten werdendbfreelogin(mssql
.login);
Lösung dafür, warum Texttypfelder in MSSQL-Datenbanken in PHP abgeschnitten werdenRETURN_FALSE;
Lösung dafür, warum Texttypfelder in MSSQL-Datenbanken in PHP abgeschnitten werden}
Lösung dafür, warum Texttypfelder in MSSQL-Datenbanken in PHP abgeschnitten werden}
Lösung dafür, warum Texttypfelder in MSSQL-Datenbanken in PHP abgeschnitten werden
if(MS_SQL_G(textsize)!=-1){
Lösung dafür, warum Texttypfelder in MSSQL-Datenbanken in PHP abgeschnitten werden
sprintf(buffer,"SETTEXTSIZE%li",MS_SQL_G(textsize));
Lösung dafür, warum Texttypfelder in MSSQL-Datenbanken in PHP abgeschnitten werdendbcmd(mssql
.Link,Puffer);
Lösung dafür, warum Texttypfelder in MSSQL-Datenbanken in PHP abgeschnitten werdendbqlexec(mssql
.Link );
Lösung dafür, warum Texttypfelder in MSSQL-Datenbanken in PHP abgeschnitten werdendbresults(mssql
.link);
Lösung dafür, warum Texttypfelder in MSSQL-Datenbanken in PHP abgeschnitten werden}

2. In PHP Führen Sie SET TEXTSIZE aus, bevor Sie die SELECT-Abfrage ausführen in:

Lösung dafür, warum Texttypfelder in MSSQL-Datenbanken in PHP abgeschnitten werdenmssql_query("SETTEXTSIZE65536" );

Wie Sie dem obigen PHP-Quellcode entnehmen können, wird auch SET TEXTSIZE ausgeführt.

Wenn das oben Gesagte nicht funktioniert, können Sie versuchen, die CAST-Funktion in der Abfrageanweisung zu verwenden.

Das Obige stellt die Lösung für das Problem vor, dass Textfelder in MSSQL-Datenbanken in PHP abgeschnitten werden, einschließlich des Inhalts des PHP-Frameworks. Ich hoffe, dass es für Freunde hilfreich sein wird, die an PHP-Tutorials interessiert sind.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage