我已将其字段上的图像迁移到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我只得到dowwnload 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;
}
?>
拜托,你能帮我解决这个问题吗?
亲切的问候
答案 0 :(得分:1)
执行语句时,提供显式参数值(17
) - 但该语句不包含任何参数占位符!然后,您尝试绑定名为'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'];
}
答案 1 :(得分:0)
您应首先映射来自:
的$ sql调用$sql = "SELECT EscudoClub FROM tclubs WHERE CodClub = 'C13'";
致:
"SELECT EscudoClub FROM tclubs WHERE CodClub = ':cod_club'";
$st = $con->prepare($sql);
$st->execute(array('cod_club' => 123456));
我不知道这是否可以解决您的问题,但是当您从调用中直接得到PHP源代码时,通常是由于您的服务器配置(apache,nginx等)。
答案 2 :(得分:0)
我想补充一点,访问数据库中的图片存储为微软word图片。在尝试显示之前,我不知道是否应该将它们导出为任何图像格式(jpeg,png ..)。问题是我从访问数据库迁移了所有数据,并且有一张包含1,3GB照片的表。
亲切的问候。