Mysql 准备的 SELECT 语句没有正确回显

基本上,我正在设置一个 mysql 准备的 select 语句,它使用 GET 从 url 中提取 id 我遇到的问题是类别和描述变量没有回显。


我使用了一个非准备好的语句,它工作得很好。我尝试将变量输入到绑定结果中。


$catid=intval($_GET['cid']);

$stmt = mysqli_prepare($con, "Select id,CategoryName,Description,PostingDate,UpdationDate from  tblcategory where Is_Active=1 and id='$catid'");

$stmt->bind_param("ssi", $category,$description,$catid);

$stmt->execute();

$stmt->bind_result($category,$description,$catid);

$stmt->fetch();

echo $category;

echo $description

此代码的预期结果是从 url 中提取 catid 并选择所有列信息,然后能够回显描述和类别变量。


qq_遁去的一_1
浏览 237回答 1
1回答

长风秋雁

就您的输出而言,您需要按照它们在查询中指定的顺序绑定结果集中的列。在你的情况下,你$catid在错误的地方。这应该有效:$stmt->bind_result($catid, $category, $description);请注意,您缺少PostingDateand 的绑定UpdationDate,您可能也想添加它们,例如$stmt->bind_result($catid, $category, $description, $postdate, $updatedate);您的输入也有问题,您正在绑定查询中不存在的参数。由于您的查询只有一个输入,您应该用占位符替换它并绑定到它:$stmt = mysqli_prepare($con, "Select id,CategoryName,Description,PostingDate,UpdationDate from  tblcategory where Is_Active=1 and id=?"); $stmt->bind_param("i", $catid);
打开App,查看更多内容
随时随地看视频慕课网APP