sql >> Database teknologi >  >> RDS >> Mysql

Hvordan kan jeg gemme og hente billeder fra en MySQL-database ved hjælp af PHP?

Først opretter du en MySQL-tabel til at gemme billeder, som for eksempel:

create table testblob (
    image_id        tinyint(3)  not null default '0',
    image_type      varchar(25) not null default '',
    image           blob        not null,
    image_size      varchar(25) not null default '',
    image_ctgy      varchar(25) not null default '',
    image_name      varchar(50) not null default ''
);

Så kan du skrive et billede til databasen som:

/***
 * All of the below MySQL_ commands can be easily
 * translated to MySQLi_ with the additions as commented
 ***/ 
$imgData = file_get_contents($filename);
$size = getimagesize($filename);
mysql_connect("localhost", "$username", "$password");
mysql_select_db ("$dbname");
// mysqli 
// $link = mysqli_connect("localhost", $username, $password,$dbname); 
$sql = sprintf("INSERT INTO testblob
    (image_type, image, image_size, image_name)
    VALUES
    ('%s', '%s', '%d', '%s')",
    /***
     * For all mysqli_ functions below, the syntax is:
     * mysqli_whartever($link, $functionContents); 
     ***/
    mysql_real_escape_string($size['mime']),
    mysql_real_escape_string($imgData),
    $size[3],
    mysql_real_escape_string($_FILES['userfile']['name'])
    );
mysql_query($sql);

Du kan vise et billede fra databasen på en webside med:

$link = mysql_connect("localhost", "username", "password");
mysql_select_db("testblob");
$sql = "SELECT image FROM testblob WHERE image_id=0";
$result = mysql_query("$sql");
header("Content-type: image/jpeg");
echo mysql_result($result, 0);
mysql_close($link);


  1. Enhver måde at indsætte eller opdatere SQLBulkCopy på, hvis den findes?

  2. Med sqlalchemy hvordan man dynamisk binder til databasemotoren på en per-anmodningsbasis

  3. En introduktion til asynkron behandling med Service Broker

  4. Hvad er det maksimale antal tegn, som nvarchar(MAX) kan indeholde?