基本上,我正在设置一个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);
请注意,您缺少
PostingDate
和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);