我正在尝试使用PDO在varbinary(max)字段中显示存储在sql server数据库中的图像。
order by date
上面的代码正确显示图像。如果我尝试按如下方式使用PDO,则会显示损坏的图像图标。
String.format("%0$-15s", str)
没有标题信息,它显示相同的数据。我做错了什么?
更新:当我放$conp = sqlsrv_connect("localhost", array("database"=>"dbname", "UID"=>"uid", "PWD"=>"somepassword"));
$id=16;
$stmt = sqlsrv_query($conp, "select image from image_tbl where id = $id");
$getAsType = SQLSRV_PHPTYPE_STREAM(SQLSRV_ENC_BINARY);
if (sqlsrv_fetch( $stmt ))
{
$image = sqlsrv_get_field( $stmt, 0, $getAsType);
header("Content-type:image/jpeg;");
fpassthru($image)
}
时,它会正确存储图像。但我仍然无法在浏览器上显示它。可能与内容类型有关。不知道。
编辑:我已使用$sql = "SELECT image FROM image_tbl WHERE id = ?";
$stmt = $conp->prepare($sql);
$stmt->execute(array(&$_GET['id']));
$stmt->bindColumn(1, $image, PDO::PARAM_LOB, 0, PDO::SQLSRV_ENCODING_BINARY);
$stmt->fetch(PDO::FETCH_BOUND);
header("Content-type:image/jpeg;");
echo $image;
更改file_put_contents('test.jpg', $data);
。