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

使用变量无法从MySQL uk_towns表查询数据,寻求技术协助

解决MySQL查询变量无结果的问题

兄弟,太懂你这种眼看逻辑没问题但查不出结果的憋屈了!我帮你捋捋可能的问题点,一个个排查:

  • 预处理语句漏了关键步骤:你当前的代码里,初始化$stmt = mysqli_stmt_init($conn);之后直接绑定参数执行,少了准备SQL语句的核心步骤!预处理必须先把SQL模板传入prepare,才能绑定参数执行。修正后的代码应该是这样:
$county = $userDetails['county'];
$town = $userDetails['town'];
$sql = "SELECT * FROM uk_towns WHERE county=? AND name=?";
$stmt = mysqli_stmt_init($conn);
// 新增这步:先准备SQL语句模板
if (!mysqli_stmt_prepare($stmt, $sql)) {
    die("SQL准备失败: " . mysqli_error($conn));
}
mysqli_stmt_bind_param($stmt, "ss", $county, $town);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
while ($row = mysqli_fetch_assoc($result)) {
    echo $row['id'];
}

这应该是你当前最直接的问题,先补上这步试试。

  • 变量可能带隐形空格:有时候从数组里取的值(比如用户输入或数据库读取的)会带有前后空格,看起来是Dyfed,实际是 Dyfed或Dyfed ,和数据库里的纯值匹配不上。可以给变量加个去空格处理:
$county = trim($userDetails['county']);
$town = trim($userDetails['town']);
  • 字符编码不匹配:如果数据库表的字符集和PHP连接时的字符集不一致,也会出现「看起来内容一样但实际不匹配」的情况。可以在连接数据库后加上字符集设置:
mysqli_set_charset($conn, 'utf8mb4');

同时检查你的uk_towns表county字段的字符集是否和PHP设置的一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 20:22:47