yo creo que la falla va mas por la lógica, me explico, tu lees el contenido de la imagen y la muestras en pantalla en las etiquetas <img>, pero la etiqueta no funciona de esa manera, tienes que enviar algun enlace para que el tag <img> lea la imagen
lo que podrias hacer es ocupar un if que funcione para elegir alguna opcion, te dejo un ejemplo
Código PHP:
if(isset($_GET['bid']) && is_numeric($_GET['bid'])){
/*
ejecuta un codigo que muestre un tag img de este formato
<img src="?image=$bookID" alt="bookPic" height="160" width="120" style="float: left;" />
*/
}else{
if(isset($_GET['image']) && is_numeric($_GET['image'])){
// ejecuta un codigo que muestre el binario de la imagen
}
al llamar a ese script de la forma
script.php?bid=123 entraría en el primer if y mostraria por pantalla el tag img, pero si te fijas el tag tiene una imagen en el formato
script.php?image=123 lo que provocaría que el tag ejecute nmuevamente el script pero por el camino del else, mostrando asñi el codigo en binario
nose si me explique bien