【发布时间】:2019-01-09 10:41:41
【问题描述】:
我有以下php 代码:
$user_id = $user["id_user_key"];
$stmt = $db->prepare("CALL spGetUserProducts(?)");
$stmt->bind_param('i', $user_id);
$stmt->execute();
$result = $stmt->get_result();
$data = array();
while($row = $result->fetch_assoc()) {
$row_array = array();
$row_array["id"] = $row["id"];
$row_array["pname"] = $row["pname"];
$row_array["picon"] = $row["picon"];
$row_array["menuItems"] = array();
$product = $row["id"];
//loop
$result_opt = $db->query("CALL spGetUserProductViews($user_id, $product)");
while ($opt_fet = $result_opt->fetch_assoc()) {
$row_array["menuItems"][] = array(
"id" => $opt_fet["id"],
"vname" => $opt_fet["vname"],
"isheader" => $opt_fet["isheader"]
);
}
array_push($data, $row_array);
}
$stmt->close();
echo json_encode($data);
第一个循环可以获得$db,换句话说:第一个准备好的语句正在执行并给我结果。第二个:
$result_opt = $db->query("CALL spGetUserProductViews($user_id, $product)");
给我false。当我在循环外尝试此语句时,它确实有效。
对他有什么想法吗?
【问题讨论】:
-
已经这样做了:
Call to a member function fetch_assoc() on boolean in这就是我说的原因:它给了我false -
所以查询或在这种情况下存储过程失败。或者可能是名称错误,或者参数错误
-
@RiggsFolly我没有打开
mysqli_report,所以谢谢!
标签: php mysql stored-procedures