PHP: Przechowywanie JPG w bazie MySQL

Zakładając, że w bazie MySQL mamy tabelę ‘gallery’ i w niej pole ‘data’ typu BLOB, w którym będziemy trzymać obrazek, dodawanie i pobieranie obrazka z bazy może wyglądać tak:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
// insert image
function insertImage($file) {
	$f = fopen("$file", "rb");
	$img = addslashes(fread($f,filesize($file)));
	fclose($f);
	$sql = "insert into gallery (data) values('$img')";
	mysql_query($sql) or die('error: '.mysql_error());
}
 
// get image
function getImage($id) {
	$sql = "select * from gallery where id = ".$id;
	$r = mysql_query($sql) or die('error: '.mysql_error());
	$i = mysql_fetch_array($r);
	$bytes = $i['data'];
 
	// pokaz obrazek	
	header( "Content-type: image/jpeg"); 		
	echo $bytes;
}

Tabela gallery:

CREATE TABLE IF NOT EXISTS `gallery` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `data` blob NOT NULL,
  PRIMARY KEY  (`id`)
)
This entry was posted in MySQL, PHP. Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">