php - Trying to get mysqli_fetch_assoc working with bind_param
问题描述
This works, it returns my array in the form:
{"results":[{"cat_id":"8",
"cat_name":"dental hygienist"},
{"cat_id":"5","cat_name":"stocktaker"},
{"cat_id":"9","cat_name":"builder"}]}
My php code is :
$query2 = "SELECT DISTINCT cat_id,cat_name FROM review WHERE public_or_private = 2";
$result2 = mysqli_query($con,$query2);
$rows = array();
while($row = mysqli_fetch_assoc($result2)) {
$rows['results'][] = $row;
}
echo json_encode($rows);
But how can I get similar to work with parameterised queries?
mysqli_query()
, mysqli_store_result()
or mysqli_use_result()
... I've tried several things like this but I keep getting null
.
My php code:
$query3 = "SELECT DISTINCT cat_id,cat_name FROM review WHERE user_id = ? AND public_or_private = 0";
$stmt3 = $con->prepare($query3) or die(mysqli_error($con));
$stmt3->bind_param('i', $user_id) or die ("MySQLi-stmt binding failed ".$stmt3->error);
$stmt3->execute() or die ("MySQLi-stmt execute failed ".$stmt3->error);
$result3 = $stmt3->get_result();
$rows = array();
while ($row = mysqli_fetch_assoc($result3)) {
$rows['results'][] = $row;
}
echo json_encode($rows);
解决方案
我不知道为什么,但这对我有用:
$numbervar = 0;
$query3 = "SELECT DISTINCT cat_id,cat_name FROM review WHERE user_id = ? AND public_or_private = ?";
$stmt3 = $con->prepare($query3) or die(mysqli_error($con));
$stmt3->bind_param('ii', $user_id,$numbervar) or die ("MySQLi-stmt binding failed ".$stmt3->error);
$stmt3->execute() or die ("MySQLi-stmt execute failed ".$stmt3->error);
$result3 = $stmt3->get_result();
$rows = array();
while ($row = mysqli_fetch_assoc($result3)) {
$rows['results'][] = $row;
}
echo json_encode($rows);
推荐阅读
- java - Selenium WebDriver:Firefox 浏览器无法显示页面标题
- javascript - 使用来自 href click 的动态数据打开 Ajax 模态
- android - 将过滤器应用于列表后,TextWatcher 和 ListView 元素的位置出现问题
- smtplib - 我的 Python 函数忽略了其中一个参数
- pandas - 根据另一列的值在 pandas 中创建值的串联
- memory - DMA如何影响CPU?
- reactjs - 在 TextField 上 onBlur() 时触发 props.onChange()
- oracle - 从日期减去 1,000 年
- linux - Linux shell脚本编译完成后如何运行命令?
- c# - 如何在 .NET 5 控制台应用程序中从任务管理器处理“结束任务”?