我一直用准备好的陈述为我的生命而奋斗。我尝试过的每个网站都有不同的语法。这就是我想要完成的事情:
$stmt = $mysqli->prepare("SELECT IdNum FROM TOAWorkOrdersNew WHERE WorkDate = ? AND TechNum = ?");
$stmt2 = $mysqli->prepare("SELECT IdNum FROM CallVolume WHERE WorkDate = ? AND ANI = ?");
---loop
----loop
$stmt->bind_param('ss', $IncDate, $TechNum);
$stmt->execute();
$stmt->store_result();
$WorkOrders = $stmt->num_rows;
$SubWorkOrders = $SubWorkOrders + $WorkOrders;
$stmt->free_result();
$stmt->close();
$stmt2->bind_param('ss', $IncDate, $CellNum);
$stmt2->execute();
$stmt2->store_result();
$CallCount = $stmt2->num_rows;
$SubCallCount = $SubCallCount + $CallCount;
$stmt2->free_result();
$stmt2->close();
}
}
语句返回NULL。
答案 0 :(得分:1)
你不应该在循环中调用$stmt->close()
。一旦你关闭声明,它就不再记得它准备好了什么。
此外,您不需要每次循环调用$stmt->bind_param()
。参数绑定到引用,因此您可以在循环之前执行此操作一次,然后只更新循环内的变量。