COUNT总是返回1

时间:2014-03-12 11:29:18

标签: php sql

我有问题,obj->num_rows不断返回1继承我的代码:

$open_tickets = $con->query("SELECT COUNT(*) FROM support_tickets WHERE Username='" . $_SESSION['user'] . "'");
    echo '<table><tr><th>Open Tickets</th><td>' . $open_tickets->num_rows . '</td></tr></table>';
$open_tickets->close();

$_SESSION['user']目前为dextermb

Image of SQL Table

正如您在我的SQL表中看到的那样, 2个票名为dextermb ,为什么代码总是返回1

4 个答案:

答案 0 :(得分:3)

您正在获取返回的行数 - 当然,这只会是1.您可能希望获得返回的值而不是行数。

答案 1 :(得分:0)

试试这个

 $open_tickets = $con->query("SELECT * FROM support_tickets WHERE Username='" .                        $_SESSION['user'] . "'");
 echo '<table><tr><th>Open Tickets</th><td>' . count($open_tickets) . '</td></tr>   </table>';
  $open_tickets->close();

答案 2 :(得分:0)

查询将返回计数,只需使用值。

尝试:

$open_tickets = $con->query("SELECT COUNT(*) FROM support_tickets WHERE Username='" . $_SESSION['user'] . "'");
echo '<table><tr><th>Open Tickets</th><td>' . $open_tickets . '</td></tr></table>';

$ open_tickets-&GT;关闭();

答案 3 :(得分:0)

试试这个:

$stm = $con->prepare("SELECT COUNT(*) as total FROM support_tickets WHERE Username = :username");
$stm->bindParam(':username', $_SESSION['user']);
$stm->execute();
$row = $res->fetch();
echo '<table><tr><th>Open Tickets</th><td>' . $row->total . '</td></tr></table>';

注意prepare和bindParam方法。这样就可以避免SQL注入。