2013-10-30 86 views
0

計數我有一個PHP函數,如下所示:返回的MySQL通過PHP

function count_creatives() { 
    global $db; 
    $q = "SELECT COUNT(DISTINCT creative) FROM actions"; 
    return $db->query($q); 
} 

的$ DB變量包含一個PDO對象,並設置正確(用在別處成功)。

當我嘗試將此函數的結果賦值給一個變量時,它只包含查詢字符串(無結果)。

代碼我運行:

$count = count_creatives();

echo $count;

輸出:

PDOStatement Object ([queryString] => SELECT COUNT(DISTINCT creative) FROM actions)

任何想法,爲什麼我沒有得到實際的計數(例如2, 3,100)?

回答

1

你從你的函數返回資源對象,而不是字段值。你需要獲取結果然後返回。請使用以下內容:

function count_creatives() 
{ 
    global $db; 
    $q = "SELECT COUNT(DISTINCT creative) AS `total` FROM actions"; 
    $result = $db->query($q); 
    $actions = $result->fetchObject(); 

    return $actions->total; 
} 
1

PDO::query()返回PDOStatement對象,或失敗時返回FALSE。你需要做類似的事情,

function count_creatives() { 
    global $db; 
    $q = "SELECT COUNT(DISTINCT creative) FROM actions"; 
    $query = $db->query($q); 
    return $query->fetch(PDO::FETCH_NUM)[0]; 
} 
+0

'count_creatives()'將返回一個數組,而不是count。 – BenM

+0

你是對的,謝謝。編輯。 –