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

为什么部分PHP代码可正常运行,同网页其他PHP插入代码会导致页面停止加载?

问题原因与解决方案

核心原因

你的页面执行到对应PHP代码段时触发了致命错误,而你的PHP环境默认关闭了错误显示,所以程序直接终止执行,表现为页面内容截止到<?php标签之前。

具体问题点及修复方案

1. 修复getData方法的返回值缺陷

你当前的getData方法仅在查询到数据时才返回结果,如果查询无数据、或者SQL执行出错,方法没有任何返回值,后续把null传入mysqli_fetch_assoc会直接触发错误。
修改后的代码:

// 从数据库读取商品数据
// tablename替换为你自己的商品表名
public function getData(){
    $sql = "SELECT * FROM $this->tablename";
    $result = mysqli_query($this->con, $sql);
    // 无论是否有数据都返回查询结果对象
    return $result;
}

2. 调用方法前增加错误判断

调用getData之后先做多重判断,避免无效参数传入后续逻辑:

<div class="container">
    <div class="row row-eq-height text-center py-5 px-4">
        <?php
            // 先判断$database对象是否已经正确实例化
            if (isset($database) && method_exists($database, 'getData')) {
                $result = $database->getData();
                // 判断查询成功且存在数据再执行循环
                if ($result && mysqli_num_rows($result) > 0) {
                    while ($row = mysqli_fetch_assoc($result)){
                        component($row['product_name'], $row['product_price'], $row['product_img'], $row['id']);
                    }
                }
            }
        ?>
    </div>  
</div>

3. 确认前置依赖已正确引入

两个必须提前引入的依赖不能漏:

  • 数据库类的实例化代码,要在调用$database->getData()之前执行完成,确保$database是有效对象
  • 定义component函数的PHP文件,要在调用函数前引入,比如在页面顶部加require 'component函数所在的文件路径.php';

4. 修复component函数的语法小问题

函数内价格输出的部分你写了$$productprice,两个$会被解析为可变变量,如果你只是要输出「$符号+价格」的格式,改成:

<span class="price">\$$productprice</span>

临时排查技巧

如果还是找不到问题,可以在页面最顶部加两行代码打开错误显示,刷新页面就能看到具体的报错信息,直接定位问题点:

error_reporting(E_ALL);
ini_set('display_errors', 1);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:18:00