我正在尝试在DB中插入图像但由于某些原因我无法检索它。我在数据库中使用BLOB类型的图像。
我用来上传图片的代码。一旦我在db中保存图像,在“IMAGE”列中我得到文件image-01.bin
if (isset($_POST["submit"]) {
$id= $_GET["id"];
$image = $_POST["image"];
$stmt=$conn->prepare("INSERT INTO db (id, image) VALUES (:id, :image)");
$stmt->bindParam(:id, $id);
$stmt->bindParam(:image, $image);
$stmt->execute();
}
我用来在网页上打印图片的代码。
$stmt = "Select Id, Image from db where id = $id LIMIT 0,1"
$q = $conn->query($stmt);
while ($r = $q ->fetch():
echo "<img src ='",$r[Image],"' width='100' height='100' />";
endwhile;
答案 0 :(得分:-1)
您可以将select绑定为类似于示例1的LOB类型,如下所示:http://php.net/manual/en/pdo.lobs.php
以下是示例 - 请注意,它会绑定所选列并将其设置为PDO::PARAM_LOB
:
<?php
$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');
$stmt = $db->prepare("select contenttype, imagedata from images where id=?");
$stmt->execute(array($_GET['id']));
$stmt->bindColumn(1, $type, PDO::PARAM_STR, 256);
$stmt->bindColumn(2, $lob, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);
header("Content-Type: $type");
fpassthru($lob);