フィールドを使用しblob
ます。
MySQL には、 と呼ばれるデータ型がありblob
ます。それを使用して作成できます。
その方法についてのチュートリアルがあります。
イメージを DB に挿入する:
# If no error
if($_FILES['userfile']['error']==UPLOAD_ERR_OK)
{
# Check if the file is uploaded via HTTP POST
if(is_uploaded_file($_FILES['userfile']['tmp_name'])) {
$imgData = file_get_contents($_FILES['userfile']['tmp_name']);
mysqli_connect("localhost", "$username", "$password");
mysqli_select_db ("$dbname");
$sql = "INSERT INTO `users` ( `idimage` ) VALUES ('{$imgData}')";
mysqli_query($sql);
}
}
DB からの画像の表示:
<?php
if(isset($_GET['id']) && is_numeric($_GET['id'])) {
# Connect to DB
$link = mysqli_connect("$hostname", "$username", "$password") or die("Could not connect: " . mysqli_error());
mysqli_select_db("$database") or die(mysqli_error());
# SQL Statement
$sql = "SELECT `idimage` FROM `users` WHERE id=" . mysqli_real_escape_string($_GET['id']) . ";";
$result = mysqli_query("$sql") or die("Invalid query: " . mysqli_error());
# Set header
header("Content-type: image/png");
echo mysqli_result($result, 0);
}
else
echo 'Please check the ID!';
?>
またはmysql_*
を使用する代わりに、関数を使用しない方がよいでしょう。mysqli_*
PDO