[英]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.