基于ID的PDO评论列回显问题排查
解决食谱评论回显空白的问题
嘿,我看你在给网站搭建评论系统时卡壳了——想展示特定食谱(ID 1)的所有评论,但页面只显示空白,连review_comment列的内容都出不来。你贴的代码写到$review_data = ...就没下文了,我帮你梳理几个最可能的问题和解决办法:
先把查询结果取出来!
你执行完$pdo->execute()后,必须把数据库返回的结果集获取到变量里才行啊!要获取多条评论的话,用fetchAll()是最合适的:$review_data = $pdo->fetchAll(PDO::FETCH_ASSOC);要是没这一步,
$review_data就是空的,页面自然啥都不显示。先确认查询有没有返回数据
可以先打印下结果或者统计行数,看看数据库里到底有没有对应ID的评论:// 打印结果看看结构 var_dump($review_data); // 或者判断是否有评论 if ($pdo->rowCount() === 0) { echo "<p>还没有任何评论,快来抢沙发!</p>"; }这一步能帮你区分是数据库没数据,还是代码没正确取到数据。
检查
$id变量是否正确
确保$id确实是你想要的食谱ID(比如1),可以先把它打印出来验证:var_dump($id);要是
$id是空值或者不对,SQL查询根本找不到对应的数据,页面当然空白。开启PDO错误调试
PDO默认不会主动抛出错误,你可以开启错误模式,这样能直接看到SQL执行时的问题:// 放在数据库连接代码之后 $DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);这样如果SQL语法错了、字段名写错了,都会直接抛出异常,帮你快速定位问题。
最后别忘了循环输出评论
拿到$review_data之后,要遍历每个评论来输出内容,记得用htmlspecialchars()防止XSS攻击:foreach ($review_data as $review) { echo "<div class='comment'>" . htmlspecialchars($review['review_comment']) . "</div>"; }
内容的提问来源于stack exchange,提问作者Hasnaat Khan
相关产品推荐
相关产品推荐

