【问题标题】:PDO Working With BLOBs (get image from table)PDO 使用 BLOB(从表中获取图像)
【发布时间】:2015-08-14 09:01:16
【问题描述】:

我在从数据库表中获取图像时遇到了一点问题,也许有人可以帮助我。 我有一个名为:

 -RESPONSES with next rows->
id,
user_avatar,
first_name,
last_name,
msg_user,
user_date,

将 PHP 插入数据库:

if (isset($_POST['r_sub'])) {
    $image = $_FILES['r_image'];
    $user_name = $_POST['r_username'];
    $last_u_name = $_POST['r_lastname'];
    $user_msg = $_POST['r_usermsg'];
    $u_date = $_POST['r_date'];

    $q_r = "INSERT INTO responses (user_avatar, first_name, last_name, msg_user, user_date) VALUES (:image, :user_name, :last_u_name, :user_msg, :u_date);";
    $query_r = $pdo->prepare($q_r);
    $results = $query_r->execute(array(
        ":image" => $image,
        ":user_name" => $user_name,
        ":last_u_name" => $last_u_name,
        ":user_msg" => $user_msg,
        ":u_date" => $u_date));
    header("Location: index.php");

我想知道如何从表中获取 BLOB(在我的情况下:user_avatar); 也许有人对这个问题有现成的解决方案?我真的需要一个代码示例!

【问题讨论】:

  • 那么您的问题是如何使用 PDO 执行SELECT 查询?
  • 没错!从表 user_avatar 中选择图像!
  • @ЮрійМориляк 在这种情况下,您为什么提供 INSERT 代码?是否要选择二进制数据并将其输出为图像?
  • 可能我不知道如何使用 BLOB,在我看来我必须存储图像的二进制代码,然后选择一个二进制代码。 User4035 - 你是对的!
  • $stmt = $pdo->prepare("SELECT user_avatar FROM responses WHERE id = :id")。绑定:id 或您需要的任何其他参数,就是这样,您可以获取数据。我可能有点不清楚是什么让您感到困惑,无论是 SQL 语法还是其他东西。您可以像使用 PHP 中的任何其他列一样使用 BLOB。

标签: php mysql sql pdo


【解决方案1】:

试试这个

echo '<img src="data:image/jpeg;base64,'.base64_encode($image->load()) .'" />';

确保

$image->load()

是您从数据库中选择的图像

【讨论】:

    猜你喜欢
    • 2013-06-02
    • 2012-02-13
    • 2019-09-15
    • 1970-01-01
    • 2019-01-01
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 2021-02-17
    相关资源
    最近更新 更多