<?php
header("Content-type: image/jpeg");
$id = $_GET["ident"];
$pat = '/^[0-9]+$/';
if(!preg_match($pat, $id)){
exit; // broken image
}
// Using prepared statement, and bind-result don't work
// too well for a blob. PHP tries to allocate 16Mbye for the blob!
$mysqli = new mysqli('localhost','root','9876543210','student13');
$query = "select image from Picys where ident=$id";
$result = $mysqli->query($query);
$err = $mysqli->error;
if(!empty($err)){
exit;
}
$row = $result->fetch_array(MYSQLI_NUM);
$bytes = $row[0];
echo $bytes;
?>
これは、SQLサーバーから写真を取得する方法です
しかし、この ImagefromMySQL.php を呼び出すと機能しません
<!DOCTYPE html>
<head>
<title>Display Picture</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<h1>A Picture from Our Collection</h1>
<?php
$id = $_GET["ident"];
echo "<img src='./ImageFromMySQL.php?id=$id' />"
?>
<hr />
<h2>Tags</h2>
<?php
$stmt->close();
$stmt = $mysqli->prepare("select Tagstr from PicyTags where Picid=?");
$stmt->bind_param('s',$id);
$stmt->execute();
$stmt->bind_result($tag);
$count = 0;
while($stmt->fetch()){
if($count==0){
echo "<bold>Existing tags:</bold>";
}
$count++;
echo "$tag<br />";
}
$mysqli->close();
?>
<br />
<h3>Add tag</h3>
<p>You may add tags that characterize the contents of this picture.</p>
<form action="./AddTag.php?ident=<?php echo $id ?>" method="POST">
<fieldset>
<legend>Your tag</legend>
<input type="text" size="16" maxlength="16" />
</fieldset>
<input type="submit" value="Add Tag" />
</form>
</body>
私のSQLデータベースはこのように見えます ident タイトル コメント 画像 6 sds sdsds BLOB - 80.5KiB 1 aaa sss BLOB - 123.6KiB