Sometimes, we want to display image BLOB from MySQL with PHP.
In this article, we’ll look at how to display image BLOB from MySQL with PHP.
How to display image BLOB from MySQL with PHP?
To display image BLOB from MySQL with PHP, we can call a few functions.
To insert a file into the database, we write
$db = new mysqli("localhost", "root", "", "DbName");
$image = file_get_contents($_FILES["images"]["tmp_name"]);
$query = "INSERT INTO products (image) VALUES(?)";
$stmt = $db->prepare($query);
$stmt->bind_param("s", $image);
$stmt->execute();
to call file_get_contents
to get the file from the $_FILES
array.
Anbd then we call bind-param
with 's'
and $image
to bind theparameter to the $query
.
And then we call execute
to run the query.
Next, we get the file and display it with
$db = new mysqli("localhost", "root", "", "DbName");
$sql = "SELECT * FROM products WHERE id = ?";
$stmt = $db->prepare($sql);
$stmt->bind_param("s", $id);
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_array();
echo '<img src="data:image/jpeg;base64,' . base64_encode($row["image"]) . '"/>';
We make a query to get the file with prepare
, bind_param
, and execute
.
And then we call get_result
and fetch_array
to get the result data as an associative array.
Finally, we display the image after calling base64_encode
with the returned image to convert it to base64 string.
Then we use that has the src attribute value for the img element.
Conclusion
To display image BLOB from MySQL with PHP, we can call a few functions.