You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过含多引号的查询从数据库读取并显示图片?

解决数据库读取图片并处理引号/语法错误的问题

我来帮你搞定这个问题,你的代码主要存在引号冲突、废弃数据库扩展、SQL注入风险,还有图片字段读取的小问题。下面是修复后的完整代码,再逐一解释细节:

// 首先连接数据库(用mysqli替代已废弃的mysql扩展)
$conn = mysqli_connect('localhost', '你的数据库用户名', '你的数据库密码', '你的数据库名');
if (!$conn) {
    die('数据库连接失败: ' . mysqli_connect_error());
}

// 用预处理语句处理查询,彻底解决引号问题+防SQL注入
$init = 1; // 假设你的$init是数字类型,如果是字符串,绑定参数时换类型标识即可
$stmt = mysqli_prepare($conn, "SELECT * FROM `Rorschach` WHERE Rid = ?");
mysqli_stmt_bind_param($stmt, "i", $init); // "i"代表整数,字符串用"s"
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
$query2 = mysqli_fetch_assoc($result); // 用关联数组,字段名直接调用更清晰

if ($query2) {
    $rid = $query2['Rid'];
    $rname = $query2['Rname'];
    $rimage = $query2['Rimage']; // 直接获取二进制图片数据
?>
<!-- 跳出PHP标签直接写HTML,完全避免引号冲突,可读性拉满 -->
<div class="tab-pane active" id="profile">
    <table class="table">
        <tbody>
            <tr>
                <td class="td-actions text-right">
                    <img src="data:image/jpeg;base64,<?php echo base64_encode($rimage); ?>" 
                         height="200" width="200" class="img-thumbnail" />
                    <!-- 你原来的代码截断了,比如radio组件可以继续在这里编写,注意引号统一即可 -->
                </td>
            </tr>
        </tbody>
    </table>
</div>
<?php
} else {
    echo "未找到对应记录";
}

// 清理资源
mysqli_stmt_close($stmt);
mysqli_close($conn);

关键问题修复说明

  • 替换废弃的mysql扩展:mysql_*函数早在PHP 5.5就被标记为废弃,PHP 7之后直接移除了,必须换成mysqli或PDO,上面用的是mysqli面向过程写法,贴近你原来的编码习惯。
  • 解决SQL查询的引号与注入问题:直接把变量拼进SQL里,不仅容易出现引号语法错误(比如$init是字符串时没加引号会报错),还会引发严重的SQL注入漏洞。用预处理语句+参数绑定,数据库会自动处理引号和数据类型,彻底规避这些问题。
  • 修复HTML输出的引号冲突:你原来的echo语句里,用单引号包裹HTML字符串,但HTML属性(比如class='tab-pane')又用了单引号,直接导致语法报错。这里推荐跳出PHP标签写HTML,既不用转义引号,代码可读性也更高;如果非要用echo输出,记得统一引号规则(比如PHP用双引号,HTML属性用单引号,或者反过来),或者用\'转义内部单引号。
  • 正确读取图片字段:你原来的代码里$rimage = $query2[2];之后又写$rimage['Rimage'],这是错误的——$query2[2]是索引数组的第三个元素(二进制图片数据),而$rimage['Rimage']是关联数组的写法,两者不能混用。用mysqli_fetch_assoc获取关联数组后,直接用字段名$query2['Rimage']读取更清晰。

内容的提问来源于stack exchange,提问作者Ameya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:31:06