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

PHP+MySQL按分类查询产品 硬编码正常变量传参返回空数据如何解决

问题原因

你给出的异常代码中,$name 变量被赋值为字符串 'name',而非目标查询值 'Ladies Shoe',最终拼接出的SQL语句实际查询条件为 catName = 'name',你的数据库表中不存在符合该条件的记录,因此返回的data字段为空。
另外需要注意,直接将变量拼接进SQL语句的写法存在SQL注入风险,不能在生产环境使用。

更优实现方案

推荐使用mysqli预处理语句(参数化查询)实现该功能,既可以从根源避免SQL注入漏洞,也能自动处理特殊字符转义问题,无需手动处理字符串拼接的格式问题,示例代码如下:

<?php
include '../connection.php';

// 此处可替换为实际传入的分类查询参数
$targetCatName = 'Ladies Shoe';

// 预处理SQL语句,使用?作为参数占位符
$preStmt = $connect->prepare("SELECT * FROM tb_shoes WHERE catName = ?");
// 绑定参数,s标识参数为字符串类型
$preStmt->bind_param("s", $targetCatName);
// 执行查询
$preStmt->execute();
// 获取查询结果集
$queryResult = $preStmt->get_result();

$returnData = [];
while ($row = $queryResult->fetch_assoc()) {
    $returnData[] = $row;
}

echo json_encode([
    "success" => true,
    "data" => $returnData
]);

// 释放连接资源
$preStmt->close();
$connect->close();
?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 00:15:02