PHP连接MySQL成功但无法查询product表pid字段问题求助
问题排查与解决
1. 核心原因:未传入pid参数
页面显示“Product does not exist isset!”,直接说明代码里的isset($_GET['pid'])判定为false——你访问页面时,没有在URL中携带pid参数。
- 正确的访问格式应该是:
http://你的域名/文件名.php?pid=xxx(xxx替换为数据库中存在的pid数值,比如1、2这类) - 直接访问不带参数的URL,必然会进入该分支触发提示。
2. 额外检查项(避免后续踩坑)
即使传入参数后仍可能出现“Product does not exist!”,可提前排查:
- 参数类型匹配:从表结构来看,
pid是INT类型,传入的参数必须是数字,不能是字符串或其他类型。 - 开启错误提示定位SQL问题:在代码开头添加错误输出,方便排查SQL相关问题:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
- 表名/字段名大小写:Linux系统下MySQL表名、字段名区分大小写,需确保代码里的
product和pid与数据库中完全一致。
3. 优化后的代码示例
<?php // 开启错误报告,便于排查问题 mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); $con = mysqli_connect('localhost','root','password','adeline'); echo $con ? 'Connection Successfully' : 'Connection Failed'; if (isset($_GET['pid'])) { // 确保pid是整数,避免类型不匹配 $pid = (int)$_GET['pid']; $stmt = $con->prepare('SELECT * FROM product WHERE pid = ?'); $stmt->bind_param('i', $pid); // 显式绑定参数类型为int $stmt->execute(); $product = $stmt->get_result()->fetch_assoc(); if (!$product) { exit('Product does not exist!'); } // 可在这里输出产品数据,比如var_dump($product); } else { exit('Product does not exist isset!'); } ?>
内容的提问来源于stack exchange,提问作者newcomer
相关产品推荐
相关产品推荐

