SQL 计数在 PHP 代码内部不起作用
SQL Count Not Working From Inside of PHP Code
我遇到了最奇怪的问题。 COUNT() 在我的 PHP 代码中不起作用,但它在 PHPMyAdmin 数据库中的 SQL 输入 space 中起作用。例如,如果我使用以下查询:
SELECT COUNT(*) FROM posts WHERE category = "coding"
它将 return 来自 PHPmyadmin 部分中输入的 SQL 的正确结果,但是从 PHP 代码它总是 return 1. 这是我用于 PHP:
的代码
function numberofposts($category, $connection) {
$query = "SELECT COUNT(*) FROM posts WHERE category = :category";
$params = array(':category' => $category);
try{
$stmt = $connection->prepare($query);
$result = $stmt->execute($params);
}
catch(PDOException $ex){
echo ("Failed to run query: " . $ex->getMessage());
}
return $result;
}
echo "Number of Posts: " . numberofposts("art", $connection);
它正在做的是在顶部的第一个代码中它会 return 正确的结果,但在 PHP 代码中它总是 returning 1。有没有我有问题 PHP?如果您不明白我在问什么,或者您想了解更多信息,请post。
您正在执行 select 并执行该语句,但您没有获取包含结果的行。
你可能想要这样的东西:
function numberofposts($category, $connection) {
$query = "SELECT COUNT(*) as cnt FROM posts WHERE category = :category";
^^^ for easy access
$params = array(':category' => $category);
try{
$stmt = $connection->prepare($query);
$stmt->execute($params);
$row = $stmt->fetch();
}
catch(PDOException $ex){
echo ("Failed to run query: " . $ex->getMessage());
}
return $row['cnt'];
// if you don't alias the column you can do:
// return $row[0];
}
我遇到了最奇怪的问题。 COUNT() 在我的 PHP 代码中不起作用,但它在 PHPMyAdmin 数据库中的 SQL 输入 space 中起作用。例如,如果我使用以下查询:
SELECT COUNT(*) FROM posts WHERE category = "coding"
它将 return 来自 PHPmyadmin 部分中输入的 SQL 的正确结果,但是从 PHP 代码它总是 return 1. 这是我用于 PHP:
的代码function numberofposts($category, $connection) {
$query = "SELECT COUNT(*) FROM posts WHERE category = :category";
$params = array(':category' => $category);
try{
$stmt = $connection->prepare($query);
$result = $stmt->execute($params);
}
catch(PDOException $ex){
echo ("Failed to run query: " . $ex->getMessage());
}
return $result;
}
echo "Number of Posts: " . numberofposts("art", $connection);
它正在做的是在顶部的第一个代码中它会 return 正确的结果,但在 PHP 代码中它总是 returning 1。有没有我有问题 PHP?如果您不明白我在问什么,或者您想了解更多信息,请post。
您正在执行 select 并执行该语句,但您没有获取包含结果的行。
你可能想要这样的东西:
function numberofposts($category, $connection) {
$query = "SELECT COUNT(*) as cnt FROM posts WHERE category = :category";
^^^ for easy access
$params = array(':category' => $category);
try{
$stmt = $connection->prepare($query);
$stmt->execute($params);
$row = $stmt->fetch();
}
catch(PDOException $ex){
echo ("Failed to run query: " . $ex->getMessage());
}
return $row['cnt'];
// if you don't alias the column you can do:
// return $row[0];
}