0
<?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

4

1 に答える 1

0

問題は、PHP コードが実行している:$_GET["ident"];が、HTML が実行している:?id=$idです。$_GET['indent']に変更する$_GET['id']か、変更?id=する必要があります?ident=

問題をデバッグするもう 1 つの方法は、ブラウザーで画像を直接開くことです。画像を作成する代わりに、発生した PHP エラーが表示されます。エラーを表示するには、コンテンツ タイプ ヘッダーをコメント アウトする必要がある場合もあります。

于 2013-06-09T05:23:57.643 に答える