Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法显示图像,因为它包含错误警告_Php_Mysql - Fatal编程技术网

Php 无法显示图像,因为它包含错误警告

Php 无法显示图像,因为它包含错误警告,php,mysql,Php,Mysql,所以我想我永远也得不到答案哈哈 旧问题,请阅读编辑 我试图在上传到mysql数据库后显示图片 但通过尝试打开图片,firefox显示以下警告: 无法显示图像,因为它包含错误 我已经因为谷歌搜索了好几个小时了,但我真的找不到解决这个问题的方法。所以现在你们是我最后的希望:) 以下是php: <?php session_start(); $con = mysql_connect("localhost", "...", "..."); mysql_select_db('...',$co

所以我想我永远也得不到答案哈哈

旧问题,请阅读编辑

我试图在上传到mysql数据库后显示图片

但通过尝试打开图片,firefox显示以下警告:

无法显示图像,因为它包含错误

我已经因为谷歌搜索了好几个小时了,但我真的找不到解决这个问题的方法。所以现在你们是我最后的希望:)

以下是php:

    <?php
session_start();

$con = mysql_connect("localhost", "...", "...");
mysql_select_db('...',$con);

$id = $_GET['id'];
$result = mysql_query("SELECT image, mime FROM artikel WHERE id='$id'");

$row = mysql_fetch_object($result);
header("Content-type: $row->mime");
echo $row->image;
    ?>


我遵循了来自的指示。我插入了带有附加mime字段的图像,并检查了代码是否正常工作

确认您的mime类型是否正确。如果是,则图像可能已损坏

简单地

header("Content-type: ");
也为我工作

$result = mysql_query("$sql") or die("Invalid query: " . mysql_error());
        $row = mysql_fetch_object($result);



 /*Only for testing purpose.*/
                //  echo $row->mime;    //This line should output image/jpeg
 /*Only for testing purpose*/


 /*Only to check output*/
        header("Content-type: $row->mime");

        echo $row->image;
 /*Only to check output*/

试试这个。检查是否正在插入值。如果插入,仍然得到错误,张贴图片的数据库相比,我以前的文章

//create a prepared statement
$stmt = $db->set_charset("utf8");
$stmt = $db->prepare("INSERT INTO artikel (`red`, `typ`, `titel`, `content`, `image`, `mime`, `timestamp`) VALUES (?,?,?,?,?,?,?)");

//run the query to insert the row
$stmt->execute(array($uname, $typ, $titel, $content, $data, $mime, $timestamp));

header("Location: erfolg.php");

您是否尝试在注释中设置
标题
?这样,您将看到脚本抛出的任何警告/错误。在将脚本强制为图像之前,请确保没有警告和错误。是否确定从中获取图像的表名为
artikel
?@l0lander是:)这是文章的德语含义。使用print\r($row)确认是否正在检索图像。要显示图像,需要指向该位置。只是名称将只显示名称。哦,然后我已经学到了一些东西:)这是我的工作文件。您可以下载它并在本地服务器中进行测试。你好。。。现在我认为我的loadpic.php工作正常-错误似乎在插入脚本中。你能看一下insert.php并告诉我那里可能有什么问题吗?谢谢:)(我在问题中添加了insert.php)您正在传递7个参数,而在bind中您已经给出了8个参数。您的第五个参数是image,而您正在将$content传递给第五个参数。你能看看你是否正确吗?在这里检查你的bindparam语法我想我已经把$meta传递给了第五个param。。有了bindparam,一切都好了,不是吗?我不知道为什么这一切都不起作用。。。我已经检查了10多次了,就是找不到错误。。有mysql数据库,然后是表单,下一步是insert.php,最后一步是loadpic.php。我不知道这个愚蠢的米萨塔克在哪里。。。这很烦人,看看这个问题,我添加了一个数据库截图。顺便问一下,为图像插入$data正确吗?或者我应该插入$meta还是$image?您正在为图像内容分配$data。所以您只需要为图像插入$data。$meta表示图像大小,$image只是名称的引用。从您上次的更新中,我看到BLOB大小仅为5B。而我的输出为5KB。因此,很明显,您没有上传图像内容。请修改我的最新代码并更新。好的,我更新了。但图像仍然无法显示。嘿,再次。。我添加了我的sql结构的屏幕截图。。。也许是弄错了
//create a prepared statement
$stmt = $db->set_charset("utf8");
$stmt = $db->prepare("INSERT INTO artikel (`red`, `typ`, `titel`, `content`, `image`, `mime`, `timestamp`) VALUES (?,?,?,?,?,?,?)");

//run the query to insert the row
$stmt->execute(array($uname, $typ, $titel, $content, $data, $mime, $timestamp));

header("Location: erfolg.php");