获取PDO功能也会返回行计数

时间:2015-06-12 15:07:39

标签: php mysql pdo

所以我做了一个函数来为我做PDO查询,所以我不必继续输入它。这是功能。

if (!function_exists('query_db_select') ) :

function query_db_select($query, $where){
$query_params = array(
':var' => $where
);
    try {
    $stmt = $db->prepare($query);
    $stmt->execute($query_params);
    }
    catch (PDOException $ex){

    }
    $count = $stmt->rowCount();
    if ($count == 1){
    return $stmt->fetch();
    }
    return $stmt->fetchAll();


    }
endif;

因此,如果我使用此功能,它看起来像这样

$query = query_db_select("SELECT * FROM table WHERE column = :var", $something);

问题是,在我使用此功能后,我怎样才能获得此功能的行数OUTSIDE?我在另一个php页面中使用该函数运行查询,但我也希望得到行计数以及fetch()

如果您有任何想法,还需要一些关于如何使这个功能更好的建议。

2 个答案:

答案 0 :(得分:0)

您要返回的是多维记录数组。您可以迭代数组的方式可以从查询更改为查询。返回行计数和结果集的一种方法如下。

if (!function_exists('query_db_select') ) :

function query_db_select($query, $where){
$returnArray = array();
$query_params = array(
':var' => $where
);
    try {
    $stmt = $db->prepare($query);
    $stmt->execute($query_params);
    }
    catch (PDOException $ex){

    }
    $count = $stmt->rowCount();
    $returnArray['rowcount'] = $count;
    if ($count == 1){
    $returnArray['results'] = $stmt->fetch();
    return $returnArray;
    }
    $returnArray['results'] = $stmt->fetchAll();
    return $returnArray;


    }
endif;

您稍后可以在函数调用之外使用$returnArray['rowCount'];/* Or whatever your variable is that gets assigned to the return value. */访问行数。

答案 1 :(得分:0)

我相信你可以这样做:

rsync --delete-missing-args --files-from=/tmp/list /source/dir /destination/dir

如果只有一个元素,我认为处理结果的方法没有意义。这是问题的温床。