使用PHP从数据库获取Blob并在HTML标记上使用它
嘿,我有一个数据库,我的php文档正确连接到它:使用PHP从数据库获取Blob并在HTML标记上使用它,php,mysql,image,blob,Php,Mysql,Image,Blob,嘿,我有一个数据库,我的php文档正确连接到它: <?php $con=new mysqli ("localhost","root","","chroniclemark"); 我试过其他的方法,但没有效果。 顺便说一下,img标记和php语句位于同一个文件中,如下所示: </head> <body> <?php $con=new mysqli ("localhost","root","","chroniclemark"); if($con
<?php
$con=new mysqli ("localhost","root","","chroniclemark");
我试过其他的方法,但没有效果。
顺便说一下,img标记和php语句位于同一个文件中,如下所示:
</head>
<body>
<?php
$con=new mysqli ("localhost","root","","chroniclemark");
if($con->connect_error)
{
echo $con->connect_errno;
die("Database Connection Failed");
}
$sqlget = "SELECT imagem FROM galeria where idg = 1";
$sqldata = mysqli_query($con,$sqlget) or die ('error getting database');
while($row = mysqli_fetch_array($sqldata, MYSQLI_ASSOC)){
$lol = '<img src="data:image/jpeg;base64,'.base64_encode( $row['imagem'] ).'"/>';
}
?>
<img src='image.php?<?php $row['imagem']?>' />
...
' />
...
对不起,我的英语不好,如果你能帮忙,请帮我。我会很高兴的。您需要使用正确的base64前缀设置图像标记的src,就像您在while循环中所做的那样 这应该是可行的,但没有经过测试:
</head>
<body>
<?php
$con=new mysqli ("localhost","root","","chroniclemark");
if($con->connect_error)
{
echo $con->connect_errno;
die("Database Connection Failed");
}
$sqlget = "SELECT imagem FROM galeria where idg = 1";
$sqldata = mysqli_query($con,$sqlget) or die ('error getting database');
while($row = mysqli_fetch_array($sqldata, MYSQLI_ASSOC)){
$lol = $row['imagem'];
}
?>
<img src="data:image/jpeg;base64,<?php base64_encode( $lol ) ?>"/>
"/>
您需要使用正确的base64前缀设置图像标记的src,就像您在while循环中所做的那样
这应该是可行的,但没有经过测试:
</head>
<body>
<?php
$con=new mysqli ("localhost","root","","chroniclemark");
if($con->connect_error)
{
echo $con->connect_errno;
die("Database Connection Failed");
}
$sqlget = "SELECT imagem FROM galeria where idg = 1";
$sqldata = mysqli_query($con,$sqlget) or die ('error getting database');
while($row = mysqli_fetch_array($sqldata, MYSQLI_ASSOC)){
$lol = $row['imagem'];
}
?>
<img src="data:image/jpeg;base64,<?php base64_encode( $lol ) ?>"/>
"/>
由于查询只返回一行,这简化了您需要执行的操作。基本上,您可以摆脱while
循环,因为您不需要通过结果集进行循环:
<?php
$con=new mysqli ("localhost","root","","chroniclemark");
if($con->connect_error)
{
echo $con->connect_errno;
die("Database Connection Failed");
}
$sqlget = "SELECT imagem FROM galeria where idg = 1";
$sqldata = mysqli_query($con,$sqlget) or die ('error getting database');
$row = mysqli_fetch_array($sqldata, MYSQLI_ASSOC);
$lol = base64_encode( $row['imagem'] );
?>
在你的问题中,你要么忘记编码,要么不知道它是必需的。现在,由于编码已完成,您可以在标记中输出图像:
<img src="data:image/jpeg;base64, <?php echo $lol; ?>" />
“/>
如果您有多行呢?您可以将图像放入一个数组中,然后稍后正确调用它们:
<?php
$con=new mysqli ("localhost","root","","chroniclemark");
if($con->connect_error)
{
echo $con->connect_errno;
die("Database Connection Failed");
}
$sqlget = "SELECT imagem FROM galeria where idg = 1";
$sqldata = mysqli_query($con,$sqlget) or die ('error getting database');
while ($row = mysqli_fetch_array($sqldata, MYSQLI_ASSOC)) {
$lol[] = base64_encode( $row['imagem'] );
}
?>
然后是这样的:
<img src="data:image/jpeg;base64, <?php echo $lol[1]; ?>" />
“/>
这将输出阵列中的第二个图像。由于所有数组都以
0
开头,因此您可以只进行计数、循环或任何必要的操作来输出完整的图像数组。由于查询只返回一行,因此这简化了您需要执行的操作。基本上,您可以摆脱while
循环,因为您不需要通过结果集进行循环:
<?php
$con=new mysqli ("localhost","root","","chroniclemark");
if($con->connect_error)
{
echo $con->connect_errno;
die("Database Connection Failed");
}
$sqlget = "SELECT imagem FROM galeria where idg = 1";
$sqldata = mysqli_query($con,$sqlget) or die ('error getting database');
$row = mysqli_fetch_array($sqldata, MYSQLI_ASSOC);
$lol = base64_encode( $row['imagem'] );
?>
在你的问题中,你要么忘记编码,要么不知道它是必需的。现在,由于编码已完成,您可以在标记中输出图像:
<img src="data:image/jpeg;base64, <?php echo $lol; ?>" />
“/>
如果您有多行呢?您可以将图像放入一个数组中,然后稍后正确调用它们:
<?php
$con=new mysqli ("localhost","root","","chroniclemark");
if($con->connect_error)
{
echo $con->connect_errno;
die("Database Connection Failed");
}
$sqlget = "SELECT imagem FROM galeria where idg = 1";
$sqldata = mysqli_query($con,$sqlget) or die ('error getting database');
while ($row = mysqli_fetch_array($sqldata, MYSQLI_ASSOC)) {
$lol[] = base64_encode( $row['imagem'] );
}
?>
然后是这样的:
<img src="data:image/jpeg;base64, <?php echo $lol[1]; ?>" />
“/>
这将输出阵列中的第二个图像。由于所有数组都以
0开始
,因此您可以只进行计数或循环或任何必要的操作,以输出完整的图像数组。echo';在中工作,您需要将“$lol”变量回显到浏览器。您的示例没有显示。“/>
是用于同一个文件还是另一个文件?是否只有一行数据?…是否有人在家?;-)我们要求澄清,但电话挂断了。echo“”;在中工作,您需要将“$lol”变量回显到浏览器。您的示例没有显示。“/>
是用于同一个文件还是另一个文件?是否只有一行数据?…是否有人在家?;-)我们要求澄清,但手机已经挂断。这里唯一的问题是,每次循环时,您都会覆盖$lol
,并且只会获得最后一张图像。如果只有一行,这应该不会引起问题,但也不需要循环。啊,我理解你的意思,但我还没有完全工作。这里唯一的问题是每次循环时你都会覆盖$lol
,只会得到最后一张图像。如果只有一行,这应该不会引起问题,但也不需要循环。啊,我理解你的意思,但我还没有完全工作。没有循环肯定会更好更简单,但我得到了同样的结果。感觉我错过了一些简单的东西。@MarkCoelho我对图像tagi haven做了一个轻微的更改,没有,但我会看一看,它与这个更改一起工作!非常感谢你。如果你需要一个标志设计,打我up@MarkCoelho标志设计,嗯?;-)我的手上有一点竞争,没有环肯定更好更简单,但我得到了同样的东西。感觉我错过了一些简单的东西。@MarkCoelho我对图像tagi haven做了一个轻微的更改,没有,但我会看一看,它与这个更改一起工作!非常感谢你。如果你需要一个标志设计,打我up@MarkCoelho标志设计,嗯?;-)我手上有点竞争哈哈