ホームページ  >  記事  >  php教程  >  PHP で SQL Server または Sybase にクエリを実行するときに TEXT フィールドが切り捨てられる問題の解決策

PHP で SQL Server または Sybase にクエリを実行するときに TEXT フィールドが切り捨てられる問題の解決策

WBOY
WBOYオリジナル
2016-06-13 12:24:321306ブラウズ

著者: Wenlong Wu
1. MS SQL SERVER データベースの場合
次の 2 つの解決策があります:
php.ini を変更して次のことを実現します: php.ini を開くと、mssql.textsize、mssql.textlimit が表示されます。 2 つのオプション:

; 有効な範囲は 0 ~ 2147483647。デフォルト = 4096。mssql.textlimit = 4096
; 有効な範囲は 0 ~ 2147483647。
;

デフォルトの設定は 4096 バイトであることがわかりますが、これは多くの場合 4K に切り捨てられます。これを適切なサイズに変更し、先頭のセミコロンを削除して保存し、WEB サーバーを再起動します。
上記の 2 つのオプションから、範囲は 0 ~ 2147483647 バイトであることがわかります。実際には、-1 も許容されます。-1 は無制限を意味することがわかります。
if ( MS_SQL_G(textlimit) != -1) {
sprintf(buffer, "%li", MS_SQL_G(textlimit));
if (DBSETOPT(mssql.link, DBTEXTLIMIT,buffer)== FAIL) {
efree(hashed_details);
dbfreelogin(mssql.login);
}
if (MS_SQL_G(textsize) != -1) {
sprintf(buffer , "SET TEXTSIZE %li", MS_SQL_G(textsize));
dbcmd(mssql.link, バッファ);
dbresults(mssql.link); ;
}
PHP でクエリを実行する前に SET TEXTSIZE を実行します。 適切なサイズ: mssql_query("SET TEXTSIZE 65536") の前に
を実行します。この拡張機能には、SQL SERVER のような php.ini で構成可能なオプションがありません。唯一の方法は、上記の 2 番目の方法、つまり、
SELECT の前に実行
sybase_query("SET TEXTSIZE 65536"); を使用することです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。