Php图像不显示,首先是Php图像错误,其次是Php没有't调用


Php Image does not show, firs tphp image error second php doesn't call out

<?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数据库是这样的标识标题注释图像6 sds sds BLOB - 80.5KiB

问题是你的PHP代码正在做:$_GET["ident"];,但你的HTML正在做:?id=$id。您需要将$_GET['indent']更改为$_GET['id']或将?id=更改为?ident=

另一种调试问题的方法是直接在浏览器中打开图像,它将显示发生的PHP错误,而不是创建图像。您可能还需要注释掉内容类型标头以查看错误。