PDO fetchColumn未返回正确的行计数

时间:2015-12-17 08:54:45

标签: php mysql pdo

document_list表的user_id表中有101条记录,但$num_rows只返回12条记录。我正在使用MariaDB数据库。

请帮我正确地完成这项工作。

fetchColumn()如何运作?我真的无法理解这一点,从结果集的下一行返回单个列,如果没有更多行,则返回FALSE。

提前致谢。

$user_id = 10;
$bind_values = array(
    ':user_id' => $user_id,
);
$query = "SELECT COUNT(*) FROM document_list WHERE user_id=:user_id";
function SelectRowCounts($caller_file,$database_name,$query,$bind_values)
{
    $query_exe = $this->db_connection->$database_name();
    $query_fetch_data = $query;
    try
    {
        $data = $query_exe->prepare($query_fetch_data);
        $data->execute($bind_values);
        return $num_rows = $data->fetchColumn();
    }
    catch(PDOException $exception)
    {
        ....
        ....

1 个答案:

答案 0 :(得分:0)

您是否正在处理布尔列?请参阅手册:http://php.net/manual/de/pdostatement.fetchcolumn.php

要检查您的查询是否返回正确的数据,您可以将其更改为"SELECT * FROM document_list",然后拨打$data->rowCount() - 这也应该返回101.