基本上,我正在设置一个mysql准备的select语句,它使用GET从url中提取id,我遇到的问题是category和description变量没有回显。
我使用了一个未经准备的声明,它工作得非常好。我试过在绑定结果中输入变量。

$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并选择所有列信息,然后能够回显description和category变量。

最佳答案

在输出方面,需要按照查询中指定的顺序绑定结果集中的列。在你的情况下,你有$catid在错误的地方。这应该有效:

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

请注意,您缺少PostingDateUpdationDate的绑定,您可能还需要添加它们,例如。
$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);

10-07 17:40