gpt4 book ai didi

php - 使用PDO从MySQL检索图像问题

转载 作者:行者123 更新时间:2023-11-29 12:21:32 25 4
gpt4 key购买 nike

我已将字段上带有图像的 Access 数据库迁移到 mysql。

当我尝试用几个 php 代码可视化它们时,我得到了一个损坏的图像图标,或者我下载了我尝试在新尝试中使用的 php 代码( PHP: Retrieve image from MySQL using PDO ):

<?php
$con = mysqli_connect('localhost', 'root', '', 'access');
$query = mysqli_query($con,"SELECT EscudoClub FROM tclubs WHERE CodClub = 'C13'");
$imageData = mysqli_fetch_array($query, MYSQLI_ASSOC);
$image = $imageData['EscudoClub'];
header("Content-type: image/jpeg");
echo $image;
mysqli_free_result($query);
mysqli_close($con);

?>

使用上面的代码,我得到了一个损坏的图像图标,并且使用 pdo 我只能下载 php 代码,我猜是因为一些语法问题:

//$dbName = $_SERVER["DOCUMENT_ROOT"]."\\..\db\\teknofo.mdb";
//$con = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=access; Uid=; Pwd=;");
$con = new PDO('mysql:host=localhost;dbname=access;charset=utf8', 'root', '');
$sql = "SELECT EscudoClub FROM tclubs WHERE CodClub = 'C13'";
$st = $con->prepare($sql);
$st->execute(array(17));
$st->bindColumn('photo', $photo, PDO::PARAM_LOB);
$st->fetch(PDO::FETCH_BOUND);
odbc_longreadlen($st, 131072);
odbc_binmode($st,ODBC_BINMODE_CONVERT);
ob_clean();
header('Content-Type: image/*');
if ($rd = $st->fetch(PDO::FETCH_BOUND))
{
echo $rd['photo'];
ob_end_flush();
$con = null;
}
?>

请问你能帮我解决这个问题吗?

亲切的问候

最佳答案

执行语句时,您提供显式参数值(17),但该语句不包含任何参数占位符!然后,您尝试绑定(bind)名为 'photo' 的列,该列在结果集中不存在。 odbc_* 调用也不应该存在。

$con = new PDO('mysql:host=localhost;dbname=access;charset=utf8', 'root', '');
// DON'T USE ROOT USER !!!

$st = $con->prepare('SELECT EscudoClub FROM tclubs WHERE CodClub = ?');
$st->execute(array('C13'));
if ($rd = $st->fetch())
{
header('Content-Type: image/*'); // you should give an exact MIME type
echo $rd['EscudoClub'];
}

关于php - 使用PDO从MySQL检索图像问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28939116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com