簡體   English   中英

PDO破壞了用於存儲文件的MSSQL文本字段數據

[英]PDO corrupting MSSQL Text field data used to store file

我使用PDO MSSQL驅動程序(非常困難)來連接到MSSQL DB。 我剛從mssql_搬到。 我在表中有一個字段,該表是我用來存儲文件的文本文件。 需要時,將檢索該字段並將數據寫入磁盤。

使用mssql_驅動程序可以正常工作,但是使用PDO檢索數據(純連接無附加參數)會以某種方式損壞文件。 我知道數據還可以,因為我還有其他輸出和檢查的方法,但是我需要解決此PDO問題。

我試圖將列綁定為LOB無濟於事

$stmt->bindColumn(1, $lob, PDO::PARAM_LOB);

有任何解決此問題的建議嗎?

我找到了解決方案。 您需要綁定該列並指定它為二進制PDO::SQLSRV_ENCODING_BINARY

$stmt = $PDORecipeCONN->prepare("Select FileDataField from Documents where VersionID= :Ver");
$stmt->execute(array(':Ver' => $fileid));
$stmt->bindColumn(1, $Data , PDO::PARAM_LOB,0,PDO::SQLSRV_ENCODING_BINARY);
$stmt->fetch(PDO::FETCH_BOUND);
$fp = fopen($fileid . '_file.doc', 'w');
fwrite($fp, $Data);

fclose($fp);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM