2013-07-31 136 views
-1

標題說明了一切。我有下面的代碼:mysql COUNT(*)總是返回8

public function getRows($table) { 

    $result = mysql_query("SELECT COUNT(*) FROM `".$table."`"); 
    if (! $result) { 
     throw new Exception(mysql_error().". Query was:\n\n".$query."\n\nError number: ".mysql_errno() . ".Table = ".$table); 
    } 
    return $result; 
} 

似乎應該是有史以來最簡單的功能,但結果總是返回8.

任何想法?

感謝, 喬希

+5

有8條記錄在你的桌子會更好? – Tdelang

+1

手冊中有無數的使用示例。爲什麼你想猜測mysql _...()函數是如何工作的? –

+0

@Tdelang不錯的一個:-) – strauberry

回答

2

你的函數返回一個mysql_query()功能的結果,這是不是你的SQL查詢的結果。

你必須做一些像mysql_fetch_assoc()mysql_*舊的PHP函數。

PS:你應該使用PDO現在,mysql_*已被棄用,這只是一個提示;)

1

要在結果

public function getRows($table) { 

$result = mysql_query("SELECT COUNT(*) AS count FROM `".$table."`"); 
    if (! $result) { 
     // throw exception 
    } 
    $row = mysql_fetch_assoc($result); 
    return $row['count']; 
} 

而且得到的記錄數。正如前面的響應者指出的那樣,您需要停止使用mysql_*功能並開始使用mysqli_*PDOPHP Docs for PDO

1

mysql_query返回資源:http://php.net/manual/en/function.mysql-query.php

返回該值不會給你查詢的結果。你需要mysql_fetch_array()。

工作的示例:

public function getRows($table) { 

    $result = mysql_query("SELECT COUNT(*) FROM `".$table."`"); 
    if (! $result) { 
     throw new Exception(mysql_error().". Query was:\n\n".$query."\n\nError number: ".mysql_errno() . ".Table = ".$table); 
    } 
    if($row = mysql_fetch_row($result)) { 
     return $row[0]; 
    } 
    else { 
     return false; 
    } 
} 
0

試圖讓導致使用mysql_fetch_array()mysql_fetch_assoc()mysql_fetch_object()

public function getRows($table) { 

$result = mysql_query("SELECT COUNT(*) AS count FROM `".$table."`"); 
    if (! $result) { 
     // throw exception 
    } 
    $row = mysql_fetch_array($result); 

    return $row['count']; 
} 

我希望這將有助於

0

你需要獲取你的查詢,而不是返回的mysql_query。

試試這個

public function getRows($table) { 

$result = mysql_query("SELECT COUNT(*) as counts FROM `".$table."`"); 
if (! $result) { 
    throw new Exception(mysql_error().". Query was:\n\n".$query."\n\nError number: ".mysql_errno() . ".Table = ".$table); 
} 
$row =mysql_fetch_array($result) ; 
return $row['counts']; 
} 
0

你會使用mysql_num_rows因爲它並不需要獲取任何數據,更有效

public function getRows($table) { 

$result = mysql_query("SELECT * FROM `".$table."`"); 
    if (! $result) { 
     // throw exception 
    } 
    $rows = mysql_num_rows($result); 

    return $rows; 
}