php pdo 在 mvc 中显示 rowCount
php pdo displaying rowCount in mvc
我正在使用一个新的 mvc 框架 (view here),我 运行 遇到了一个小问题。
我有一个名为“favourite
”的 table,如下所示;
---------------------------
id user_id book_id
1 2 1777
2 3 1887
3 2 1023
4 7 8776
5 2 8811
---------------------------
我正在尝试在他们的个人资料页面上显示特定收藏夹的数量(您好。您有 x 个收藏夹)。我觉得我误解了有关 mvc 结构的某些内容或某处存在语法问题?
在我的 showprofile 上,我没有任何错误,它只是在应该计数的地方空白。当我 运行 在 phpmyadmin 中查询时,我得到的结果是 3,这是正确的。
我读到 rowCount() 可能不可靠,所以我也尝试了 fetchColumn() 等变体。我需要使用第二个查询吗?
php/sql/mvc 的新手,如有任何建议,我们将不胜感激。
我的代码如下;
login_model.php(型号)
class LoginModel
{
public function favouriteTotal()
{
$query = $this->db->prepare("SELECT COUNT(book_id) FROM favourite WHERE user_id = 2");
$query->execute();
$count = $query->rowCount()
}
}
showprofile.php(查看)
<div>
Hello. Your have this number of favourites:
<?php echo $this->count ?>
</div>
login.php(控制器)
class Login extends Controller
{
function showProfile()
{
$login_model = $this->loadModel('Login');
$this->view->count = $login_model->favouriteTotal();
$this->view->render('login/showprofile');
}
}
您的问题是您正在执行 COUNT 查询,而如果您想使用 rowCount 函数,您应该使用 SELECT 查询。
此查询将使您的 rowCount 函数起作用:
SELECT `book_id` FROM favourite WHERE user_id = 2
或者,您可以继续使用 COUNT 语句,但您需要从查询中获取第一个结果而不是行计数。
我正在使用一个新的 mvc 框架 (view here),我 运行 遇到了一个小问题。
我有一个名为“favourite
”的 table,如下所示;
---------------------------
id user_id book_id
1 2 1777
2 3 1887
3 2 1023
4 7 8776
5 2 8811
---------------------------
我正在尝试在他们的个人资料页面上显示特定收藏夹的数量(您好。您有 x 个收藏夹)。我觉得我误解了有关 mvc 结构的某些内容或某处存在语法问题?
在我的 showprofile 上,我没有任何错误,它只是在应该计数的地方空白。当我 运行 在 phpmyadmin 中查询时,我得到的结果是 3,这是正确的。
我读到 rowCount() 可能不可靠,所以我也尝试了 fetchColumn() 等变体。我需要使用第二个查询吗?
php/sql/mvc 的新手,如有任何建议,我们将不胜感激。
我的代码如下;
login_model.php(型号)
class LoginModel
{
public function favouriteTotal()
{
$query = $this->db->prepare("SELECT COUNT(book_id) FROM favourite WHERE user_id = 2");
$query->execute();
$count = $query->rowCount()
}
}
showprofile.php(查看)
<div>
Hello. Your have this number of favourites:
<?php echo $this->count ?>
</div>
login.php(控制器)
class Login extends Controller
{
function showProfile()
{
$login_model = $this->loadModel('Login');
$this->view->count = $login_model->favouriteTotal();
$this->view->render('login/showprofile');
}
}
您的问题是您正在执行 COUNT 查询,而如果您想使用 rowCount 函数,您应该使用 SELECT 查询。
此查询将使您的 rowCount 函数起作用:
SELECT `book_id` FROM favourite WHERE user_id = 2
或者,您可以继续使用 COUNT 语句,但您需要从查询中获取第一个结果而不是行计数。