file_get_contents()で取得した画像のバイナリデータをPDO経由でpostgreSQLのDBへ書き込み・読み込みを行いたい
$src = file_get_contents('path/someImage.jpg'); $sql = "UPDATE test_table SET image = :image WHERE id = :id"; $stmt = $conn->prepare($sql);//PDOコネクション $stmt->bindValue('id' , $id)); $stmt->bindValue('image' , pg_escape_bytea($src) , \PDO::PARAM_BLOB); //省略 $stmt->execute(); $query = "SELECT ENCODE( image::bytea, 'escape' ) as image WHERE id = :id"; //省略 $img = $stmt2->fetchColumn(); header("Content-type: image/jpeg"); echo(pg_unescape_bytea($img));
エラーや例外は発生しないのですが表示した画像が崩れてしまいます。
$src = file_get_contents('path/someImage.jpg'); header("Content-type: image/jpeg"); echo pg_unescape_bytea(pg_escape_bytea($src));
で元のデータが復元できないことから、pg_escape_bytea($src)が間違いだと分かるのですが、これをどう修正すればよいか教示のほどお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。