[SQL] PHP도 INI 값을 설정 한 후, MSSQL BLOB 데이터 (4096b)를 절단한다. 나는 하나의 실종?
SQLPHP도 INI 값을 설정 한 후, MSSQL BLOB 데이터 (4096b)를 절단한다. 나는 하나의 실종?
나는 테이블을 통해 이동하고 외부 파일에 각 레코드에서 VARBINARY (최대) BLOB 데이터를 추출하는 PHP 스크립트를 쓰고 있어요. 데이터가 정확히 4096에서 잘립니다 - 코드 완벽하게 작동되고 파일이 4096b 위에있을 때를 제외하고 (나는 일부 이미지를 통해 갈 거의 동일한 코드를 사용).
나는 어떤 성공하지 mssql.textlimit, mssql.textsize 및 odbc.defaultlrl에 대한 값을 수정했습니다.
내가 여기서 뭔가를 놓치고 있습니까?
<?php
ini_set("mssql.textlimit" , "2147483647");
ini_set("mssql.textsize" , "2147483647");
ini_set("odbc.defaultlrl", "0");
include_once('common.php'); //Connection to DB takes place here.
$id=$_REQUEST['i'];
$q = odbc_exec($connect, "Select id,filename,documentBin from Projectdocuments where id = $id");
if (odbc_fetch_row($q)){
echo "Trying $filename ... ";
$fileName="projectPhotos/docs/".odbc_result($q,"filename");
if (file_exists($fileName)){
unlink($fileName);
}
if($fh = fopen($fileName, "wb")) {
$binData=odbc_result($q,"documentBin");
fwrite($fh, $binData) ;
fclose($fh);
$size = filesize($fileName);
echo ("$fileName<br />Done ($size)<br><br>");
}else {
echo ("$fileName Failed<br>");
}
}
?>
산출
해결법
-
==============================
1.대신 0으로 odbc.defaultlrl을 설정하는 대신 실제 값으로 설정하십시오 :
대신 0으로 odbc.defaultlrl을 설정하는 대신 실제 값으로 설정하십시오 :
ini_set("odbc.defaultlrl", "100K");
-
==============================
2.당신은 MSSQL (FreeTDS를)를 사용하는 경우, 설정에 대한 /etc/freetds.conf에 보면 "텍스트 크기"라고합니다. 광산은 64512로 설정하고 내 이미지가 잘리지하던 그대로였습니다. 나는 5메가바이트 (5242880)로 설정하고 지금은 매력처럼 일하고있어.
당신은 MSSQL (FreeTDS를)를 사용하는 경우, 설정에 대한 /etc/freetds.conf에 보면 "텍스트 크기"라고합니다. 광산은 64512로 설정하고 내 이미지가 잘리지하던 그대로였습니다. 나는 5메가바이트 (5242880)로 설정하고 지금은 매력처럼 일하고있어.
text size = 5242880
-
==============================
3.설명서에서이 의견에 따르면, 당신은 당신의 사건이 될 것 같지 않는, 연결하기 전에 INI 설정을 설정해야합니다.
설명서에서이 의견에 따르면, 당신은 당신의 사건이 될 것 같지 않는, 연결하기 전에 INI 설정을 설정해야합니다.
-
==============================
4.나는이 고대 알고,하지만 난 다르게이 문제를 해결했다. 위해서는 ini_set이 mysql.text 제한 또는 mssql.textsize에 대한 작업을하지 않는,이 php.net에 설명되어 있습니다.
나는이 고대 알고,하지만 난 다르게이 문제를 해결했다. 위해서는 ini_set이 mysql.text 제한 또는 mssql.textsize에 대한 작업을하지 않는,이 php.net에 설명되어 있습니다.
php.ini 파일에 4096b (4K)에 이러한 기본 둘. 더 높은 값이 재설정하고 그것을 잘 작동합니다.
망가 후 다시 시작 아파치 서비스에 잊어 버려.
from https://stackoverflow.com/questions/4500506/php-is-truncating-mssql-blob-data-4096b-even-after-setting-ini-values-am-i-m by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 열 값으로 행 값을 만들기 - SQL PIVOT (0) | 2020.07.14 |
---|---|
[SQL] SQL을 사용하여 고유 한 난수를 생성 (0) | 2020.07.14 |
[SQL] 예외 java.sql.SQLException의 (0, 1> 파라미터의 수)의 범위 중 정수 인덱스 [중복] (0) | 2020.07.14 |
[SQL] (+)는 오라클 SQL의 기능은 무엇입니까? (0) | 2020.07.14 |
[SQL] 비주얼 C #을 사용하여 SQL 데이터베이스에 이미지를 추가 (0) | 2020.07.14 |