2017-07-16 46 views
-1

我希望有人能幫助我解決這個奇怪的問題。PHP MySQLI - 表數以零結尾

我的問題是當我在我的表中計數記錄它返回零。

當我在phpMyAdmin中使用相同的SQLI查詢時,我得到了正確的數字。

我也可以讀取所有記錄,所以我知道連接沒問題。 現在我已經嘗試了很多東西,比如註釋掉mysqli_stmt_bind_param,在數字和字符串之間切換,也沒有「while」循環,因爲只有一個值返回,但目前還沒有運氣。

所以任何人都可以告訴我我在做什麼錯了這段代碼?

$prep_stmt = "SELECT COUNT (*) FROM gps"; 
$stmt = mysqli_prepare ($mysqli, $prep_stmt); 
mysqli_stmt_bind_param ($stmt, 'i'); 
mysqli_stmt_execute($stmt); 

mysqli_stmt_bind_result($stmt, $gps_pos); 

while (mysqli_stmt_fetch($stmt)){ 
    $format = "Antal GPS Positioner: %d \n"; 
    printf($format, $gps_pos); 
} 
+1

所以沒有什麼約束你沒有使用的佔位符。你應該得到一個關於這個錯誤。請參閱手冊http://php.net/manual/en/mysqli-stmt.bind-param.php,並嘗試刪除「COUNT(*)'=> COUNT(*)' –

+0

Plus中的空格,試圖將一個整數綁定到所有列,可能(另一個原因)爲什麼它失敗。 –

+0

請嘗試像這樣執行您的查詢: $ prep_stmt =「SELECT COUNT(*)as FROM FROM gps」; 然後算起來。 –

回答

0

忘記所有一分鐘的結合,並嘗試做你這樣的查詢:

$query = "SELECT COUNT (*) as counted FROM gps"; 
$result = mysqli_query($dbc, $query); 
$num = mysqli_num_rows ($result); 

if ($num > 0) 
{ 
while($row = mysqli_fetch_assoc($result)) 
    { 
    $Counted = $row['Counted']; 
    $format = "Antal GPS Positioner: %d \n"; 
    printf($format, $Counted) 
    } 
} 
+0

對不起,但沒有運氣,沒有錯誤消息。也嘗試過在另一個網站上找到的一個例子。 到目前爲止,我的最佳解決方案是做一個普通的查詢「SELECT * From table」,並使用一個計數器來獲取每一行,只是丟棄不需要的數據。 :-) – RAJensen

+0

更改「$計數= $行['計數'];」到「$ Counted = $ row ['counting'];」;它應該是一個小寫。如果你無法弄清楚這一切,那就錯了。在$ dbc下你也必須有你的數據庫連接。 –

+0

我確實看到大寫/小寫拼寫錯誤。我知道連接沒問題,因爲我會使用它,當我從數據庫中讀出數據時。 如果它沒有工作,我不能使用櫃檯。 :-) – RAJensen