在我的 php 项目中,我的 sql 数据库中的图像没有正确加载

问题描述 投票:0回答:0

我已经在我的 sql 中创建了一个数据库并决定添加一些图片,但问题是当前应该加载的图片返回一个空字符串。所以正确的图像应该出现在网站上的地方只是一个图像图标

Here you can see what the current website looks like and where the image icons are.

CREATE TABLE IF NOT EXISTS permissions(
typ int NOT NULL,
dvd_hinzufügen BIT NOT NULL,
dvd_löschen BIT NOT NULL,
dvd_bearbeiten BIT NOT NULL,
dvd_ausgeben BIT NOT NULL,
kunden_anlegen BIT NOT NULL,
kunden_bearbeiten BIT NOT NULL,
FOREIGN KEY (typ) REFERENCES benutzer(typ)
);

我已经用一些数据填充了这张表。这里只能看到我添加的部分电影

INSERT INTO dvd (titel, genre, fsk, laenge, darsteller, regisseur, anzahl, bild) VALUES
('Pulp Fiction', 'Krimi', 16, 154, 'John Travolta', 'Quentin Tarantino', 5, 
LOAD_FILE('/Bilder/pulp_fiction.jpg')),
('The Shawshank Redemption', 'Drama', 12, 142, 'Tim Robbins', 'Frank Darabont', 5, 
LOAD_FILE('/Bilder/the_shawshank_redemption.jpg')),
('The Godfather', 'Krimi', 16, 175, 'Marlon Brando', 'Francis Ford Coppola', 5, 
LOAD_FILE('/Bilder/the_godfather.jpg')),
('Fight Club', 'Drama', 18, 139, 'Brad Pitt', 'David Fincher', 5, 
LOAD_FILE('/Bilder/fight_club.webp')),
('Forrest Gump', 'Drama', 6, 142, 'Tom Hanks', 'Robert Zemeckis', 5, 
LOAD_FILE('/Bilder/forrest_gump.jpg')),
('Inception', 'Sci-Fi', 12, 148, 'Leonardo DiCaprio', 'Christopher Nolan', 5, 
LOAD_FILE('/Bilder/inception.png'));

图片路径要正确。我的 databank.sql 文件与包含图像的 ordner bilder 的顺序相同。

然后我在我的 php 部分请求了图像。

          if (!isset($_GET['search']) || ($_GET['search'] == '')) {
        //abfrage aller Filme aus Datenbank
        $sql = "SELECT titel, bild FROM dvd ORDER BY $selectedCategory $selectedSort" ;
        $res = $con->query($sql);
        if ($res->num_rows > 0){
            while($i = $res->fetch_assoc()){
                $bild = base64_encode($i['bild']);
                echo "<p>" .$i["titel"]."</p>";
                echo '<img src="data:image/jpeg;base64,'.$bild.'" />';
            }
        }
      }
      else if (isset($_GET['search'])) {
        //abfrage Filme aus Datenbank
        $searchTerm = $con->real_escape_string($_GET['search']);
        $sql = "SELECT titel, bild FROM dvd WHERE titel LIKE '%$searchTerm%' or genre LIKE '%$searchTerm%' or fsk LIKE '%$searchTerm%' or darsteller LIKE '%$searchTerm%' or regisseur LIKE '%$searchTerm%' ORDER BY $selectedCategory $selectedSort" ;
        $res = $con->query($sql);
        if ($res->num_rows > 0){
            while($i = $res->fetch_assoc()){
                $bild = base64_encode($i['bild']);
                echo "<p>" .$i["titel"]."</p>";
                echo '<img src="data:image/jpeg;base64,'.$bild.'" />';
            }
        }
      }

我尝试使用

echo "<p>Length: " . strlen($bild) . "</p>";
来查看变量 $bild 的长度是否为 0,实际上是。我还右键单击图像图标并在编辑器中打开它们,在那里我可以看到
 <p>A Beautiful Mind</p><img src="data:image/jpeg;base64," /><p>Eternal Sunshine of the Spotless Mind</p><img src="data:image/jpeg;base64," /><p>Gladiator</p><img src="data:image/jpeg;base64," /><p>Jurassic Park</p><img src="data:image/jpeg;base64," /><p>Toy Story</p><img src="data:image/jpeg;base64," />          </div>
。 总之,问题应该是图像没有正确加载加载文件功能,这是没有意义的。我希望我能提供足够的样品。否则评论这个,我会提供更多。

php html mysql image-loading
© www.soinside.com 2019 - 2024. All rights reserved.