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

本地正常但CPanel中无法获取MySQL查询$row关联数组值问题

本地正常的PHP代码部署到CPanel后,无法通过关联数组键获取SQL查询值

我的PHP代码在本地环境运行正常,但部署到CPanel服务器后,SQL查询执行成功,print_r($row)能正确打印所有查询结果,但使用$row['name']等关联数组键获取值时返回null,alert($row['name'])也无显示,相关代码如下:

<?php 
                    
include './sql/connection.php';
$sql = "SELECT id, name, category, price, description, image FROM proizvod";
$result = $conn->query($sql);

while($row = $result->fetch_assoc()) {
    print_r($row);
    echo "<script>alert(".$row['name'].")</script>";
    if($row['category']=='Nargila')
        $category = 'filter-narg';
    else if($row['category']=='Ukus')
        $category = 'filter-ukusi';
    else if($row['category']=='Ostalo')
        $category = 'filter-ostalo';

    echo '<div class="col-lg-4 col-md-6 shop-item '. $category .'">
        <div class="product shadow-lg rounded-2" data-aos="fade-up" data-aos-delay="100">
            <a href="shop-details.php?id='. $row['id'] .'">
                <div class="product-img">
                    <img src="./assets/img/shop/'. $row['image'] .'" class="img-fluid" alt="'. $row['description'] .'">
                    <div class="social">
                        <i class="fa-solid fa-plus fa-xs me-2"></i>Više
                    </div>
                </div>
                <div class="product-info mt-1 py-2">
                <span>'. $row['category'] .'</span>
                <h4>'. $row['name'] .'</h4>
                <h3 class="mt-3">'. $row['price']-1 .' RSD</h3>
                </div>
            </a>
            <a href="./pages/delete.php?id='. $row['id'] .'" onclick="return confirm(\'Da li si siguran da hoćeš da izbriseš?\')" 
                class="btn btn-primary-outline text-danger mb-2 admin">Izbriši</a>
            <form action="" method="POST">
                <input name="id" type="text" class="d-none" value="'. $row['id'] .'">
                <button class="btn w-100 py-3 bg-theme" name="add-to-cart" type="submit">
                    <i class="fa-solid fa-cart-plus fa-xl me-3"></i>Dodaj u korpu
                </button>
            </form>
        </div>
    </div>';
}
?>

解决步骤

  1. 修正数组键名大小写
    Linux环境下的PHP对数组键名大小写敏感,而本地Windows环境通常不敏感。查看print_r($row)的输出,确认字段键名的实际大小写(比如是否是Name而非name),将代码中所有$row['xxx']的键名修改为与输出完全一致的大小写。

  2. 统一SQL查询的字段别名(可选)
    如果不想修改代码中的键名,可以在SQL语句中为每个字段指定小写别名,确保返回的关联数组键统一为小写:

    $sql = "SELECT id AS id, name AS name, category AS category, price AS price, description AS description, image AS image FROM proizvod";
    
  3. 修复JS alert语法错误
    原代码中的alert语句会导致JS语法错误(字符串未加引号),修改为:

    echo "<script>alert('".addslashes($row['name'])."')</script>";
    

    使用addslashes()可以避免name值包含单引号时破坏JS语法。

  4. 修正价格计算的优先级问题
    原代码中$row['price']-1会先执行字符串拼接再做减法,导致计算错误,添加括号确保优先级:

    <h3 class="mt-3">'. ($row['price'] - 1) .' RSD</h3>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 11:47:52