【发布时间】:2017-09-17 10:04:35
【问题描述】:
我想从数据库中获取行数,但是当我尝试这样做时,$g_check 变量将等于0,我的代码将回显$sugg_title 消息,该消息位于@987654325 @ 陈述。但是在数据库中有 4 个插入的组,所以 num_rows 属性应该返回 4。
$sql = "SELECT DISTINCT gp.logo, gp.name
FROM gmembers AS gm
LEFT JOIN groups AS gp ON gp.name = gm.gname
WHERE gp.creator != ? AND gm.mname != ? LIMIT 10";
$stmt = $conn->prepare($sql);
$stmt->bind_param('ss',$log_username,$log_username);
$stmt->execute();
$g_check = $stmt->num_rows;
if ($g_check > 0){
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
$agList .= '<a href="group.php?g='.$row["name"].'"><img class="group_margin" src="groups/'.$row["name"].'/'.$row["logo"].'" alt="'.$row["name"].'" title="'.$row["name"].'" width="70" height="70" /></a>';
}
}else{
$sugg_title = "You have no group suggestions at the moment. Click ";
$sugg_title .= '<a href="all_groups.php">here</a> to view all groups.';
}
我将strore_result() 和fetch() 函数放在execute() 之后,但随后我收到以下错误消息:“致命错误:未捕获的错误:在布尔值上调用成员函数 fetch_assoc()"
【问题讨论】:
-
你是否在 mysql 工作台中使用给定的参数执行了相同的 sql 代码?它返回 4 吗?
-
我想你想使用
affected_rows,而不是num_rows。看看affected_rows -
是的,
affected_rows解决了问题!
标签: php mysql mysqli row prepared-statement