Php 使用MySQLs的计数时,页面内容会消失
我想在我的菜单上有一个标签,上面写着还有多少任务要做。我试着这样做:Php 使用MySQLs的计数时,页面内容会消失,php,mysql,Php,Mysql,我想在我的菜单上有一个标签,上面写着还有多少任务要做。我试着这样做: public function getTasksCount() { $stmt = $this->db_connection->prepare("SELECT COUNT(*) FROM tasks WHERE for = ?"); $user = $_POST['user_name']; $stmt->bind_param('s', $user);
public function getTasksCount() {
$stmt = $this->db_connection->prepare("SELECT COUNT(*) FROM tasks WHERE for = ?");
$user = $_POST['user_name'];
$stmt->bind_param('s', $user);
$stmt->execute();
$stmt->bind_result($count);
$stmt->store_result();
if($stmt->num_rows > 0) {
while($stmt->fetch()) {
return "$count";
}
}
$stmt->close();
}
但当我这样称呼它时,我的大部分页面内容都消失了。见下图。正如你所看到的,垂直侧菜单仍然可以,但是顶部菜单中的选项消失了,当然,内容在大的空白中。。。有什么帮助吗
Img:您正在执行选择计数*查询。它只能返回一行。因此,使用while循环获取该行是cargo cult编程的一个主要症状。如果您的页面在特定代码位之后死亡,则可能会出现一个错误,该错误会杀死php并禁用调试选项,从而阻止显示错误消息。是否打开了错误报告和显示错误?调试/开发时不应关闭它们。@MarcB是的,它们已打开。如果在调用GetTaskCount后发送缺少的内容,我想您的函数会产生错误,并且不会显示此错误,可能是因为PHP中设置了display_errors和error_reporting指令。在获取/存储结果之前,您可能应该检查num_行。不确定所有store_结果在内部的具体功能,但它可能会抛出num_rows之类的元数据。您还可以在浏览器中检查页面源。行返回$count;在您的示例中,返回转换为字符串的查询结果,该字符串中可能有一些HTML保留字符,从而影响页面的显示。